原碼、反碼和補碼

1)原碼錶示法

    原碼錶示法是機器數的一種簡單的表示法。其符號位用0表示正號,用1表示負號,數值一般用二進制形式表示。設有一數爲x,則原碼錶示可記作[x

    例如  X1= 1010110

             X2= 1001010

    其原碼記作:

            X1=[1010110]=01010110

            X2=[1001010]=11001010

    原碼錶示數的範圍與二進制位數有關。當用8位二進制來表示小數原碼時,其表示範圍:

      最大值爲0.1111111,其真值約爲(0.9910

      最小值爲1.1111111,其真值約爲(一0.9910

  當用8位二進制來表示整數原碼時,其表示範圍:

      最大值爲01111111,其真值爲(12710

      最小值爲11111111,其真值爲(-12710

      在原碼錶示法中,對0有兩種表示形式:

          +0=00000000

           [0]=10000000

 

2)補碼錶示法

    機器數的補碼可由原碼得到。如果機器數是正數,則該機器數的補碼與原碼一樣;如果機器數是負數,則該機器數的補碼是對它的原碼(除符號位外)各位取反,並在未位加1而得到的。設有一數X,則X的補碼錶示記作[X

      例如,[X1]=1010110

               [X2]= 1001010

               [X1]=01010110

               [X1]=01010110

          [X1]=[X1]=01010110

             [X2]= 11001010

             [X2]=10110101110110110

    補碼錶示數的範圍與二進制位數有關。當採用8位二進制表示時,小數補碼的表示範圍:

      最大爲0.1111111,其真值爲(0.9910

      最小爲1.0000000,其真值爲(一110

採用8位二進制表示時,整數補碼的表示範圍:

      最大爲01111111,其真值爲(12710

      最小爲10000000,其真值爲(一12810

      在補碼錶示法中,0只有一種表示形式:

        [0]=00000000

        [-0]=111111111=00000000(由於受設備字長的限制,最後的進位丟失)

所以有[0]=[-0]=00000000

 

 

3)反碼錶示法

    機器數的反碼可由原碼得到。如果機器數是正數,則該機器數的反碼與原碼一樣;如果機器數是負數,則該機器數的反碼是對它的原碼(符號位除外)各位取反而得到的。設有一數X,則X的反碼錶示記作[X

    例如:X1= 1010110

             X2= 1001010

        X1=01010110

         [X1]=X1=01010110

         [X2]=11001010

         [X2]=10110101

    反碼通常作爲求補過程的中間形式,即在一個負數的反碼的未位上加1,就得到了該負數的補碼。

1. 已知[X]=10011010,求[X]

分析如下:

[X][X]的原則是:若機器數爲正數,則[X]=[X];若機器數爲負數,則該機器數的補碼可對它的原碼(符號位除外)所有位求反,再在未位加1而得到。現給定的機器數爲負數,故有[X]=[X]1,即

          [X]=10011010

          [X]=11100101

     十)         1     

 

          [X]=11100110

 

 

2. 已知[X]=11100110,求[X

         分析如下:

     對於機器數爲正數,則[X=X

     對於機器數爲負數,則有[X=[[X

現給定的爲負數,故有:

            X=11100110

        [[X=10011001

              十)         1   

 

        [[X=10011010=X

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章