<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    keep moving!

    We must not cease from exploration. And the end of all our exploring will be to arrive where we began and to know the place for the first time.
    隨筆 - 37, 文章 - 2, 評論 - 3, 引用 - 0
    數(shù)據(jù)加載中……

    [轉(zhuǎn)]原碼、反碼、補碼

    原碼、反碼、補碼

         數(shù)值在計算機中表示形式為機器數(shù),計算機只能識別01,使用的是二進制,而在日常生活中人們使用的是十進制,"正如亞里士多德早就指出的那樣,今天十進制的廣泛采用,只不過我們絕大多數(shù)人生來具有10個手指頭這個解剖學事實的結(jié)果.盡管在歷史上手指計數(shù)(5,10進制)的實踐要比二或三進制計數(shù)出現(xiàn)的晚."(摘自<<數(shù)學發(fā)展史>>有空大家可以看看哦~,很有意思的).為了能方便的與二進制轉(zhuǎn)換,就使用了十六進制(2 4)和八進制(23).下面進入正題.

    數(shù)值有正負之分,計算機就用一個數(shù)的最高位存放符號(0為正,1為負).這就是機器數(shù)的原碼了.假設機器能處理的位數(shù)為8.即字長為1byte,原碼能表示數(shù)值的范圍為

    (-127~-0 +0~127)256.

     有了數(shù)值的表示方法就可以對數(shù)進行算術(shù)運算.但是很快就發(fā)現(xiàn)用帶符號位的原碼進行乘除運算時結(jié)果正確,而在加減運算的時候就出現(xiàn)了問題,如下: 假設字長為8bits

    ( 1 ) 10- ( 1 )10 = ( 1 )10 + ( -1 )10 =  ( 0 )10

    (00000001) + (10000001) = (10000010) = ( -2 ) 顯然不正確.

     因為在兩個整數(shù)的加法運算中是沒有問題的,于是就發(fā)現(xiàn)問題出現(xiàn)在帶符號位的負數(shù)身上,對除符號位外的其余各位逐位取反就產(chǎn)生了反碼.反碼的取值空間和原碼相同且一一對應. 下面是反碼的減法運算:

     ( 1 )10 - ( 1 ) 10= ( 1 ) 10+ ( -1 ) 10=  ( 0 )10

     (00000001) + (11111110) = (11111111) = ( -0 ) 有問題.

    ( 1 )10 - ( 2)10 = ( 1 )10 + ( -2 )10 =  ( -1 )10

    (00000001) + (11111101) = (11111110) = ( -1 ) 正確

    問題出現(xiàn)在(+0)(-0),在人們的計算概念中零是沒有正負之分的.(印度人首先將零作為標記并放入運算之中,包含有零號的印度數(shù)學和十進制計數(shù)對人類文明的貢獻極大).

    于是就引入了補碼概念. 負數(shù)的補碼就是對反碼加一,而正數(shù)不變,正數(shù)的原碼反碼補碼是一樣的.在補碼中用(-128)代替了(-0),所以補碼的表示范圍為:

    (-128~0~127)256.

    注意:(-128)沒有相對應的原碼和反碼, (-128) = (10000000) 補碼的加減運算如下:

    ( 1 ) 10- ( 1 ) 10= ( 1 )10 + ( -1 )10 =  ( 0 )10

    (00000001) + (11111111) = (00000000) = ( 0 ) 正確

    ( 1 ) 10- ( 2) 10= ( 1 )10 + ( -2 )10 =  ( -1 )10

    (00000001) + (11111110) = (11111111) = ( -1 ) 正確

       所以補碼的設計目的是:

         ⑴使符號位能與有效值部分一起參加運算,從而簡化運算規(guī)則.

    ⑵使減法運算轉(zhuǎn)換為加法運算,進一步簡化計算機中運算器的線路設計

     所有這些轉(zhuǎn)換都是在計算機的最底層進行的,而在我們使用的匯編、C等其他高級語言中使用的都是原碼。看了上面這些大家應該對原碼、反碼、補碼有了新的認識了吧!

    有網(wǎng)友對此做了進一步的總結(jié):

    本人大致總結(jié)一下:

    1、在計算機系統(tǒng)中,數(shù)值一律用補碼來表示(存儲)。

    主要原因:使用補碼,可以將符號位和其它位統(tǒng)一處理;同時,減法也可按加法來處理。另外,兩個用補碼表示的數(shù)相加時,如果最高位(符號位)有進位,則進位被舍棄。

    2、補碼與原碼的轉(zhuǎn)換過程幾乎是相同的。

    數(shù)值的補碼表示也分兩種情況:
    (1)正數(shù)的補碼:與原碼相同。
    例如,+9的補碼是00001001。
    (2)負數(shù)的補碼:符號位為1,其余位為該數(shù)絕對值的原碼按位取反;然后整個數(shù)加1。
    例如,-7的補碼:因為是負數(shù),則符號位為“1”,整個為10000111;其余7位為-7的絕對值+7的原碼0000111按位取反為1111000;再加1,所以-7的補碼是11111001


    已知一個數(shù)的補碼,求原碼的操作分兩種情況:
    (1)如果補碼的符號位為“0”,表示是一個正數(shù),所以補碼就是該數(shù)的原碼。
    (2)如果補碼的符號位為“1”,表示是一個負數(shù),求原碼的操作可以是:符號位為1,其余各位取反,然后再整個數(shù)加1。
    例如,已知一個補碼為11111001,則原碼是10000111(-7):因為符號位為“1”,表示是一個負數(shù),所以該位不變,仍為“1”;其余7位1111001取反后為0000110;再加1,所以是10000111。

    在“閑扯原碼、反碼、補碼”文件中,沒有提到一個很重要的概念“”。我在這里稍微介紹一下“模”的概念:

    ”是指一個計量系統(tǒng)的計數(shù)范圍。如時鐘等。計算機也可以看成一個計量機器,它也有一個計量范圍,即都存在一個“模”。例如:

      時鐘的計量范圍是0~11,模=12。
      表示n位的計算機計量范圍是0~2(n)-1,模=2(n)?!咀ⅲ簄表示指數(shù)】


      “模”實質(zhì)上是計量器產(chǎn)生“溢出”的量,它的值在計量器上表示不出來,計量器上只能表示出模的余數(shù)。任何有模的計量器,均可化減法為加法運算。

    例如: 假設當前時針指向10點,而準確時間是6點,調(diào)整時間可有以下兩種撥法:

       一種是倒撥4小時,即:10-4=6

       另一種是順撥8小時:10+8=12+6=6

    在以12模的系統(tǒng)中,加8和減4效果是一樣的,因此凡是減4運算,都可以用加8來代替。

    對“模”而言,8和4互為補數(shù)。實際上以12模的系統(tǒng)中,11和1,10和2,9和3,7和5,6和6都有這個特性。共同的特點是兩者相加等于模。

    對于計算機,其概念和方法完全一樣。n位計算機,設n=8, 所能表示的最大數(shù)是11111111,若再加1稱為100000000(9位),但因只有8位,最高位1自然丟失。又回了00000000,所以8位二進制系統(tǒng)的模為2(8)。 在這樣的系統(tǒng)中減法問題也可以化成加法問題,只需把減數(shù)用相應的補數(shù)表示就可以了。

    把補數(shù)用到計算機對數(shù)的處理上,就是補碼。

     

    posted on 2008-09-07 02:16 大石頭 閱讀(504) 評論(0)  編輯  收藏 所屬分類: 基礎

    主站蜘蛛池模板: 日本亚洲欧洲免费天堂午夜看片女人员| 久久WWW免费人成—看片| 日日麻批免费40分钟无码| 亚洲AV无码久久| 全免费a级毛片免费看不卡 | 91av免费观看| 边摸边脱吃奶边高潮视频免费| 在线观看无码AV网站永久免费| 亚洲人和日本人jizz| 久久亚洲中文字幕精品一区| 日韩精品无码区免费专区| 久久久久久亚洲av无码蜜芽| 亚洲av永久无码精品网站| 最新69国产成人精品免费视频动漫 | 亚洲va中文字幕| 国产免费的野战视频| 黄网站色视频免费观看45分钟| 日韩毛片免费无码无毒视频观看 | 国产专区一va亚洲v天堂| 99精品全国免费观看视频| 免费精品一区二区三区第35| 国产精品亚洲а∨无码播放麻豆| 亚洲精品成人a在线观看| 成年女人毛片免费播放视频m| 久久水蜜桃亚洲av无码精品麻豆| 免费无码午夜福利片69| 亚洲国产美女在线观看| 在线观看视频免费国语| 88av免费观看入口在线| 中文字幕在线免费播放| 亚洲精品国产精品国自产网站 | 又粗又长又爽又长黄免费视频| 久久亚洲AV永久无码精品| 蜜臀91精品国产免费观看| 精品一区二区三区无码免费视频| 亚洲精品av无码喷奶水糖心| 亚洲AV无码一区东京热久久 | 两个人日本WWW免费版| 一级女人18片毛片免费视频| 亚洲欧洲视频在线观看| 中文字幕亚洲免费无线观看日本|