• <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>
            posts - 19,  comments - 21,  trackbacks - 0

              昨天去參加筆試,遇到了一題考計算機里存放的數據都是以原碼、反碼、還是補碼的形式存放的。我還真的很久沒有考慮過原碼補碼的問題了,不過憑他考這個問題,我可以猜出答案一定是補碼了。雖然答案知道了,但是還真不知道還有這么一說,所以回來在網上搜了一篇這樣的文章,才算是弄清楚是怎么一回事了:


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

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

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

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

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

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

             ( 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 ) 正確

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

            于是就引入了補碼概念. 負數的補碼就是對反碼加一,而正數不變,正數的原碼反碼補碼是一樣的.在補碼中用(-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 )  正確

               所以補碼的設計目的是:

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

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

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


            下面總結一下:
            1。正數的原碼反碼補碼都相同,負數的反碼是除符號位為1外,其他位全取反;補碼就是反碼+1
            2。(10000000)規定為-128
            3。計算機中的數據是以補碼形式存儲的

            posted on 2005-12-09 19:32 halCode 閱讀(7055) 評論(2)  編輯 收藏 引用 所屬分類: 算法/數據結構

            FeedBack:
            # re: 原碼、反碼、補碼
            2006-10-24 10:16 | 吳海波
            例如,十進制數0.365怎么表示他的原碼,反碼,補碼  回復  更多評論
              

            <2025年5月>
            27282930123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            常用鏈接

            留言簿(7)

            隨筆分類

            隨筆檔案

            文章分類

            文章檔案

            相冊

            編程資源

            不務正業

            找工作

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            婷婷久久精品国产| 久久se精品一区二区| 国产农村妇女毛片精品久久| 午夜精品久久久久久毛片| 麻豆av久久av盛宴av| 97久久国产露脸精品国产| 国产aⅴ激情无码久久| 久久综合偷偷噜噜噜色| 国产精品久久新婚兰兰| 国产aⅴ激情无码久久| 色婷婷久久综合中文久久蜜桃av| 欧美大香线蕉线伊人久久| 久久国产精品无码HDAV| 久久综合九色综合97_久久久| 国内精品久久久久久野外| 国产激情久久久久影院小草| 久久久久国产精品麻豆AR影院 | 成人资源影音先锋久久资源网| 国内精品久久久久影院一蜜桃| 久久免费线看线看| 久久婷婷人人澡人人| 精品综合久久久久久98| 国产一区二区精品久久| 久久涩综合| 国产精品久久精品| 久久婷婷色香五月综合激情 | 久久午夜羞羞影院免费观看| 久久99国产精品久久99| 国产精品久久新婚兰兰| 狠狠色丁香婷综合久久| 久久久久久国产a免费观看黄色大片| 久久天天躁狠狠躁夜夜网站| 久久精品亚洲欧美日韩久久| 香蕉久久夜色精品升级完成 | 亚洲国产综合久久天堂| 久久精品人人做人人妻人人玩| 国产99久久久久久免费看 | 日本精品久久久久中文字幕8| 国产成人久久精品一区二区三区 | AV色综合久久天堂AV色综合在| 看全色黄大色大片免费久久久|