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刺客 閱讀(774) 評論(0)  編輯  收藏 所屬分類: CEIAEC
          主站蜘蛛池模板: 武平县| 临漳县| 泸西县| 泰兴市| 邵阳县| 乌拉特中旗| 色达县| 依兰县| 荔波县| 呼图壁县| 夏津县| 疏附县| 清涧县| 东源县| 宾川县| 达尔| 卓资县| 辽阳县| 平阳县| 游戏| 崇信县| 彝良县| 龙口市| 定兴县| 威宁| 湘阴县| 明水县| 理塘县| 五河县| 新龙县| 沂水县| 曲麻莱县| 吉首市| 天气| 灌南县| 夏津县| 芒康县| 嘉峪关市| 石景山区| 鄄城县| 高密市|