Alex刺客

          Dancing fingers, damage world. -- 舞動手指,破壞世界.

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            57 隨筆 :: 0 文章 :: 76 評論 :: 0 Trackbacks
              原碼
           
              數值 X 的原碼記為 [X]原,如果機器字長為 n (即采用 n 個二進制位表示數據),則最高位是符號位,0 表示正號,1 表示負號,基余的 n~1 位表示數值的絕對值。數值零的原碼表示有兩種形式:[+0]原=00000000,[-0]原=10000000。
           
                  例:
                  [+4]原 = 00000100
                  [-4]原 = 10000100
                  [+127]原 = 01111111
                  [-127]原 = 11111111
           
              反碼
           
              數值 X 的反碼記作 [X]反,如果機器字長為 n,則最高位是符號位,0 表示正號,1 表示負號,正數的反碼與原碼相同,負數的反碼則是其絕對值按位求反。數值0的反碼表示有兩種形式:[+0]反=00000000,[-0]反=11111111。
           
                  例:
                  [+4]反 = 00000100
                  [-4]反 = 11111011
                  [+127]反 = 01111111
                  [-127]反 = 10000000
           
           
              補碼
           
              數值 X 的補碼記作 [X]補,如果機器字長為 n,則最高為符號位,0 表示正號,1 表示負號,正數的補碼與其原碼和反碼相同,負數的補碼則等于其反碼的末尾加 1。在補碼表示中,0 有唯一的編碼:[+0]補=00000000, [-0]補=00000000。
           
                  例:
                  [+4]補 = 00000100
                  [-4]補 = 11111100
                  [+127]補 = 01111111
                  [-127]補 = 10000001
           
              移碼
           
              在數 X 上增加一個偏移量來定義的,常用于表示浮點數中的階碼。如果機器字長為 n,在偏移2^(n-1)的情況下,只要將補碼的符號位取反便可獲相應的移碼。
           
                  例:
                  [+0]移 = 10000000
                  [-0]移 = 10000000
                  [+4]移 = 10000100
                  [-4]移 = 01111100
                  [+127]移 = 11111111
                  [-127]移 = 00000001
           
          總結:原碼、反碼、補碼中最高位 0 表示正數,1 表示負數。負數的反碼規則是符號位不變,絕對值位按位取反。負數的補碼規則是符號位不變,絕對值位按位取反然后再加1。
          posted on 2010-04-15 07:36 Alex刺客 閱讀(781) 評論(0)  編輯  收藏 所屬分類: CEIAEC
          主站蜘蛛池模板: 桃园县| 离岛区| 承德市| 镇沅| 乌审旗| 库伦旗| 兴文县| 安溪县| 华蓥市| 天峻县| 和林格尔县| 山阴县| 民权县| 当雄县| 疏勒县| 于都县| 瑞昌市| 恩平市| 金乡县| 宁陵县| 沂南县| 晋城| 乌兰察布市| 海伦市| 和静县| 甘孜县| 霍邱县| 清徐县| 汉阴县| 莱州市| 同德县| 淅川县| 久治县| 通山县| 满城县| 南城县| 道孚县| 迁西县| 鄢陵县| 瑞丽市| 略阳县|