• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            A Za, A Za, Fighting...

            堅(jiān)信:勤能補(bǔ)拙

            [zz] 原碼、反碼、補(bǔ)碼

            轉(zhuǎn)自:
            http://hi.baidu.com/cive/blog/item/f6899418726669b44aedbcc9.html

            ------------------------------------------------------------------------------------------------------------------

            數(shù)在計(jì)算機(jī)中是以二進(jìn)制形式表示的。 
            數(shù)分為有符號(hào)數(shù)和無符號(hào)數(shù)。 
            原碼、反碼、補(bǔ)碼都是有符號(hào)定點(diǎn)數(shù)的表示方法。 
            一個(gè)有符號(hào)定點(diǎn)數(shù)的最高位為符號(hào)位,0是正,1是副。 

            以下都以8位整數(shù)為例, 

            原碼就是這個(gè)數(shù)本身的二進(jìn)制形式。 
            例如
            0000001 就是+1
            1000001 就是-1 

            正數(shù)的反碼和補(bǔ)碼都是和原碼相同。 

            負(fù)數(shù)的反碼是將其原碼除符號(hào)位之外的各位求反 
            [-3]反=[10000011]反=11111100 
            負(fù)數(shù)的補(bǔ)碼是將其原碼除符號(hào)位之外的各位求反之后在末位再加1。 
            [-3]補(bǔ)=[10000011]補(bǔ)=11111101 
            一個(gè)數(shù)和它的補(bǔ)碼是可逆的。 

            為什么要設(shè)立補(bǔ)碼呢? 

            第一是為了能讓計(jì)算機(jī)執(zhí)行減法: 
            [a-b]補(bǔ)=a補(bǔ)+(-b)補(bǔ) 

            第二個(gè)原因是為了統(tǒng)一正0和負(fù)0 
            正零:00000000 
            負(fù)零:10000000 
            這兩個(gè)數(shù)其實(shí)都是0,但他們的原碼卻有不同的表示。 
            但是他們的補(bǔ)碼是一樣的,都是00000000 
            特別注意,如果+1之后有進(jìn)位的,要一直往前進(jìn)位,包括符號(hào)位!(這和反碼是不同的!) 
            [10000000]補(bǔ) 
            =[10000000]反+1 
            =11111111+1 
            =(1)00000000 
            =00000000(最高位溢出了,符號(hào)位變成了0) 

            有人會(huì)問 
            10000000這個(gè)補(bǔ)碼表示的哪個(gè)數(shù)的補(bǔ)碼呢? 
            其實(shí)這是一個(gè)規(guī)定,這個(gè)數(shù)表示的是-128 
            所以n位補(bǔ)碼能表示的范圍是 
            -2^(n-1)到2^(n-1)-1 
            比n位原碼能表示的數(shù)多一個(gè)

            又例:
            1011 
            原碼:01011 
            反碼:01011 //正數(shù)時(shí),反碼=原碼 
            補(bǔ)碼:01011 //正數(shù)時(shí),補(bǔ)碼=原碼 

            -1011 
            原碼:11011 
            反碼:10100 //負(fù)數(shù)時(shí),反碼為原碼取反 
            補(bǔ)碼:10101 //負(fù)數(shù)時(shí),補(bǔ)碼為原碼取反+1 

            0.1101 
            原碼:0.1101 
            反碼:0.1101 //正數(shù)時(shí),反碼=原碼 
            補(bǔ)碼:0.1101 //正數(shù)時(shí),補(bǔ)碼=原碼 

            -0.1101 
            原碼:1.1101 
            反碼:1.0010 //負(fù)數(shù)時(shí),反碼為原碼取反 
            補(bǔ)碼:1.0011 //負(fù)數(shù)時(shí),補(bǔ)碼為原碼取反+1 

            總結(jié):
            在計(jì)算機(jī)內(nèi),定點(diǎn)數(shù)有3種表示法:原碼、反碼和補(bǔ)碼

            所謂原碼就是前面所介紹的二進(jìn)制定點(diǎn)表示法,即最高位為符號(hào)位,“0”表示正,“1”表示負(fù),其余位表示數(shù)值的大小。

            反碼表示法規(guī)定:正數(shù)的反碼與其原碼相同;負(fù)數(shù)的反碼是對(duì)其原碼逐位取反,但符號(hào)位除外。

            補(bǔ)碼表示法規(guī)定:正數(shù)的補(bǔ)碼與其原碼相同;負(fù)數(shù)的補(bǔ)碼是在其反碼的末位加1。

            1、原碼、反碼和補(bǔ)碼的表示方法

            (1)     原碼:在數(shù)值前直接加一符號(hào)位的表示法。

            例如:       符號(hào)位   數(shù)值位

            [+7]原=    0     0000111   B

            [-7]原=    1     0000111   B

                  注意:a. 數(shù)0的原碼有兩種形式:

                                [+0]原=00000000B     [-0]原=10000000B

                            b. 8位二進(jìn)制原碼的表示范圍:-127~+127

            2)反碼:

                  正數(shù):正數(shù)的反碼與原碼相同。

                  負(fù)數(shù):負(fù)數(shù)的反碼,符號(hào)位為“1”,數(shù)值部分按位取反。

            例如: 符號(hào)位    數(shù)值位

                  [+7]反=   0    0000111   B

                  [-7]反=   1    1111000   B

            注意:a. 數(shù)0的反碼也有兩種形式,即

                           [+0]反=00000000B

                           [- 0]反=11111111B

                       b. 8位二進(jìn)制反碼的表示范圍:-127~+127

            3)補(bǔ)碼的表示方法

            1)模的概念:把一個(gè)計(jì)量單位稱之為模或模數(shù)。例如,時(shí)鐘是以12進(jìn)制進(jìn)行計(jì)數(shù)循環(huán)的,即以12為模。在時(shí)鐘上,時(shí)針加上(正撥)12的整數(shù)位或減去(反撥)12的整數(shù)位,時(shí)針的位置不變。14點(diǎn)鐘在舍去模12后,成為(下午)2點(diǎn)鐘(14=14-12=2)。從0點(diǎn)出發(fā)逆時(shí)針撥10格即減去10小時(shí),也可看成從0點(diǎn)出發(fā)順時(shí)針撥2格(加上2小時(shí)),即2點(diǎn)(0-10=-10=-10+12=2)。因此,在模12的前提下,-10可映射為+2。由此可見,對(duì)于一個(gè)模數(shù)為12的循環(huán)系統(tǒng)來說,加2和減10的效果是一樣的;因此,在以12為模的系統(tǒng)中,凡是減10的運(yùn)算都可以用加2來代替,這就把減法問題轉(zhuǎn)化成加法問題了(注:計(jì)算機(jī)的硬件結(jié)構(gòu)中只有加法器,所以大部分的運(yùn)算都必須最終轉(zhuǎn)換為加法)。10和2對(duì)模12而言互為補(bǔ)數(shù)。

            同理,計(jì)算機(jī)的運(yùn)算部件與寄存器都有一定字長(zhǎng)的限制(假設(shè)字長(zhǎng)為8),因此它的運(yùn)算也是一種模運(yùn)算。當(dāng)計(jì)數(shù)器計(jì)滿8位也就是256個(gè)數(shù)后會(huì)產(chǎn)生溢出,又從頭開始計(jì)數(shù)。產(chǎn)生溢出的量就是計(jì)數(shù)器的模,顯然,8位二進(jìn)制數(shù),它的模數(shù)為28=256。在計(jì)算中,兩個(gè)互補(bǔ)的數(shù)稱為“補(bǔ)碼”。

            2)補(bǔ)碼的表示: 正數(shù):正數(shù)的補(bǔ)碼和原碼相同。

                 負(fù)數(shù):負(fù)數(shù)的補(bǔ)碼則是符號(hào)位為“1”,數(shù)值部分按位取反后再在末位(最低位)加1。也就是“反碼+1”。

            例如:   符號(hào)位 數(shù)值位

            [+7]補(bǔ)=    0    0000111   B

                   [-7]補(bǔ)=    1    1111001   B

            補(bǔ)碼在微型機(jī)中是一種重要的編碼形式,請(qǐng)注意:

            a.采用補(bǔ)碼后,可以方便地將減法運(yùn)算轉(zhuǎn)化成加法運(yùn)算,運(yùn)算過程得到簡(jiǎn)化。正數(shù)的補(bǔ)碼即是它所表示的數(shù)的真值,而負(fù)數(shù)的補(bǔ)碼的數(shù)值部份卻不是它所表示的數(shù)的真值。采用補(bǔ)碼進(jìn)行運(yùn)算,所得結(jié)果仍為補(bǔ)碼。

            b.與原碼、反碼不同,數(shù)值0的補(bǔ)碼只有一個(gè),即        [0]補(bǔ)=00000000B。

            c.若字長(zhǎng)為8位,則補(bǔ)碼所表示的范圍為-128~+127;進(jìn)行補(bǔ)碼運(yùn)算時(shí),應(yīng)注意所得結(jié)果不應(yīng)超過補(bǔ)碼所能表示數(shù)的范圍。

            posted on 2010-11-05 17:53 simplyzhao 閱讀(253) 評(píng)論(0)  編輯 收藏 引用 所屬分類: G_其他

            導(dǎo)航

            <2011年6月>
            2930311234
            567891011
            12131415161718
            19202122232425
            262728293012
            3456789

            統(tǒng)計(jì)

            常用鏈接

            留言簿(1)

            隨筆分類

            隨筆檔案

            搜索

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            久久精品国产欧美日韩| 久久精品无码午夜福利理论片| 久久综合狠狠综合久久激情 | 免费一级做a爰片久久毛片潮| 久久这里都是精品| 久久久精品国产sm调教网站| 欧美久久综合性欧美| 国产精品久久新婚兰兰| 亚洲一本综合久久| 午夜天堂av天堂久久久| 久久se这里只有精品| 久久99精品久久久久久久久久| 久久无码一区二区三区少妇 | 久久影视综合亚洲| 久久精品亚洲日本波多野结衣| 国产成人久久精品二区三区| 久久人爽人人爽人人片AV| 久久久久99精品成人片| 亚洲综合精品香蕉久久网97| 久久久久久国产精品免费无码 | 久久香综合精品久久伊人| 色综合久久久久综合99| 国产精品美女久久久免费| 丁香狠狠色婷婷久久综合| 久久夜色精品国产网站| 伊人久久精品无码二区麻豆| 国产精品久久久久久久久软件| 久久精品女人天堂AV麻| 久久精品成人免费网站| 国产精品久久久久9999| 国产产无码乱码精品久久鸭| 久久精品欧美日韩精品| 久久精品国产亚洲AV电影| 午夜不卡久久精品无码免费| 狠狠色婷婷久久综合频道日韩| 日韩欧美亚洲综合久久| 国内精品伊人久久久影院| 久久精品国产99国产精品亚洲| 久久亚洲AV无码精品色午夜| 久久久久久久97| 久久狠狠高潮亚洲精品|