日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

# 原码、反码、补码和移码详解 # 原码、反码、补码和移码的“由来”

發布時間:2024/1/1 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 # 原码、反码、补码和移码详解 # 原码、反码、补码和移码的“由来” 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、原碼、反碼、補碼和移碼的一般求法

碼制一般求法
原碼符號位用0表示正數,1表示負數,其余位不變。
反碼正數的反碼與原碼一樣,負數的反碼是對它的原碼(除符號位外)各位取反。
補碼正數的補碼與原碼一樣,負數的補碼是其反碼尾部加1。
移碼不管正負數,將其補碼的符號位取反即可。



二、移碼的“真正”求法

移碼:移碼表示法是在數X上增加一個偏移量來定義的,通常用于表示浮點數的階碼。

如果機器字長為n,規定偏移 量為2n-1,則移碼定義如下:

X 為純整數:[X]=2n-1+X(-2n-1≤X<2n-1

X 為純小數:[X]=1+X(-1≤X<1)


【舉個栗子】

[+1]=28-1+1=129=1 000 0001

[-1]=28-1 -1=127=0 111 1111

[+127]=28-1+127=255=1 111 1111

[-127]=28-1 -127=1=0 000 0001

[+45]=28-1+45=173=1 010 1101

[-45]=28-1 -45=83=0 101 0011

[+0.5]=1+0.5=1.5=1 100 0000

[-0.5]=1-0.5=0.5=0 100 0000

[+0]=[-0]=1 000 0000




三、原碼、反碼、補碼和移碼的“由來”

1. 原碼

原碼:符號位用0表示正數,1表示負數,其余位不變。


對于計算機,加減乘除是最基礎的運算,要設計的盡量簡單。

計算機辨別“符號位”顯然會讓計算機的基礎電路設計變得十分復雜!于是科學家想出了將符號位也參與運算的方法。

我們知道,根據運算法則,減去一個正數等于加上一 個負數,即:1-1=1+(-1)=0,所以機器可以只有加法而沒有減法,這樣計算機運算的設計就更簡單了。

在運算中,原碼進行加法運算是沒有問題的,但是在減法運算中會出問題,如:(D表示十進制)

1D-1D

=1D+(-1)D

=[0 000 0001]+[1 000 0001]

=[1 000 0010]

=-2D

這個結果明顯是錯誤的!

如果用原碼表示,讓符號位也參與計算,顯然對于減法來說,結果是不正確的。這也就是為何計算機內部不使用原碼表示一個數的原因。

所以為了解決原碼做減法的問題,出現了反碼。


2. 反碼

反碼:正數的反碼與原碼一樣,負數的反碼是對它的原碼(除符號位外)各位取反。


【舉個栗子】

使用反碼計算 1-1 過程如下:

1D-1D

= 1D+(-1)D

= [0 000 0001]+[1 000 0001]

=[0 000 0001]+[1 111 1110]

=[1 111 1111]

=[1 000 0000]

= - 0D

發現用反碼計算減法,結果的真值部分是正確的。

而唯一的問題其實就出現在“0”這個特殊的數值上。雖然人們理解上+0 和-0 是一樣的, 但在這里 0 帶符號是沒有任何意義的,而且會有[0 0000000]原和[1 0000000]原兩個編碼表示 0。 于是補碼出現了,解決了 0 的符號和 0 的兩個編碼問題,以及原碼和補碼進行減法運算時出現的問題。


3. 補碼

補碼:正數的補碼與原碼一樣,負數的補碼是其反碼尾部加1。


使用補碼計算 1-1 過程如下:

1D-1D

=1D+(-1)D

=[0 000 0001]+[1 000 0001]

=[0 000 0001]+[1 111 1111]

=[0 000 0000]

=[0 000 0000]

=0D

這樣 0 用 0 000 0000 表示,而以前出現問題的-0 則不存在了,且在補碼中 0 也只有一種唯一的表示形式。

假設機器字長為 8 位,使用補碼則可以用[1 000 0000]表示-128D;

(-1)D+(-127)D

=[1 000 0001]+[1 111 1111]

=[1 111 1111]+[1 000 0001]

=[1 000 0000]

最終運算結果應為 [1 1000 0000],但由于機器字長為 8 位,最左邊的“1”被丟掉了,故只剩下[1 000 0000]。 -1-127 的結果應該是-128,在用補碼運算的結果中,[1 000 0000]就是-128。

但是注意因為實際上是使用以前的 -0 的補碼來表示 -128,所以-128 并沒有原碼和反碼表示(對-128 的補碼表示[1 000 0000]算出來的原碼是[0 000 0000],這是不正確的)。

使用補碼,不僅僅修復了 0 的符號以及 0 的兩個編碼的問題,而且還能夠多表示一個最低數。這就是為什么 8 位二進制使用原碼或反碼表示的范圍為[-127,+127],而使用補碼表示的范圍為[-128,127]的原因。

因為機器使用補碼,所以對于編程中常用到的 32 位 int 類型,可以表示范圍是(最高位是符號位):[-231,231-1],使用補碼表示時可以多保存一個最小值 - 231

假設機器字長為 n 位,則使用補碼表示的最小的一個數是 -2n-1。


4. 移碼

移碼:不管正負數,將其補碼的符號位取反即可。


常用來比較大小,一般會把浮點數的階碼用移碼表示。當把數值用移碼表示出來可一眼看出它們的大小,這樣很容易判斷階碼的大小,移碼可用于簡化浮點數的乘除法運算。




四、原碼、反碼、補碼和移碼的取值范圍

碼制定點整數定點小數
原碼-(2n-1-1) ~ +(2n-1-1)-(1-2-(n-1)) ~ +(1-2-(n-1))
反碼-(2n-1-1) ~ +(2n-1-1)-(1-2-(n-1)) ~ +(1-2-(n-1))
補碼-2n-1 ~ +(2n-1-1)-1 ~ +(1-2-(n-1))
移碼-2n-1 ~ +(2n-1-1)-1 ~ +(1-2-(n-1))

【定點小數的取值范圍的推算】

以補碼為例:一個數用 n 位存儲,用掉一個符號位后,還有 (n-1) 位,如果小數點在最右邊,此時表示的是整數,可表示 -2n-1 ~ +(2n-1-1) 范圍的數,把小數點左移 n-1 位,相當于除以 2(n-1) ,結果為:

-1 ~ +(1-2-(n-1))

同理可以將其他碼制的范圍求出來。




【總結】

總之,反碼用來解決負數加法運算問題,將減法運算轉換為加法運算,從而簡化運算規則;

補碼解決負數加法運算正負零問題,彌補了反碼的不足。

反碼與補碼都是為了解決負數運算問題,跟正數沒關系,因此,不管是正整數還是正小數,原碼,反碼,補碼都全部相同。

將補碼符號位取反即得到相應的移碼。

總結

以上是生活随笔為你收集整理的# 原码、反码、补码和移码详解 # 原码、反码、补码和移码的“由来”的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 人妻无码中文字幕免费视频蜜桃 | 久久99精品久久久久久三级 | 老熟妇高潮一区二区高清视频 | 久久久久久久网 | 理论在线视频 | 黄色女女 | 亚洲国产成人一区二区 | 日日夜夜免费精品视频 | 欧美电影一区二区三区 | 亲子伦视频一区二区三区 | 韩国一级片在线观看 | 日韩一区二区三区中文字幕 | 91九色高潮 | 浪漫樱花动漫在线观看免费 | 欧洲色视频 | 亚洲av无码一区二区三区性色 | 大j8黑人w巨大888a片 | 久热这里只有 | 青草草在线 | a天堂在线视频 | 日本人体一区 | 久久久久久91香蕉国产 | 一本色道久久综合亚洲精品按摩 | 欧美人与动物xxxx | 国产精品视频网 | 欧美老熟妇xb水多毛多 | 91爱爱影院 | 五月激情在线观看 | 国产色播av在线 | 久久中出 | 国产精品久久久久久久av | 亚洲av无码专区在线电影 | 午夜精品三级久久久有码 | 久久精品亚洲精品 | 女人下面流白浆的视频 | 中文字幕在线免费播放 | 91久久久久久 | 在线日韩欧美 | avtt香蕉久久 | 日本加勒比一区 | 国产在线精品二区 | 久久久久久久久久99精品 | 午夜av影院 | 在线日韩三级 | 国产麻豆一区二区三区在线观看 | 日本不卡三区 | 美女日批在线观看 | 国产一级二级三级在线观看 | 一级黄色av | 日韩xx视频 | 欧美性开放视频 | 亚洲精品无码久久久久久久 | 91第一页| 欧美精品中文 | 99热这里只有精品1 亚洲人交配视频 | 屁股夹体温计调教play | 国产精品99久久久久久大便 | 日本少妇18p | 草民午夜理伦三级 | 国产99久久久国产精品成人免费 | 极品粉嫩小仙女高潮喷水久久 | 五十路av在线 | 中文字幕无线码一区 | 亚洲日本japanese丝袜 | 久草青青视频 | 亚洲天堂热| 一区二区三区四区在线观看视频 | 级毛片内射视频 | 污污网站在线观看视频 | 国产网站在线免费观看 | 成人av高清在线观看 | 亚洲一级在线 | 国产xxxx | 永久久久久久 | 国产第20页 | 国产男女视频在线观看 | 亚洲超碰在线 | 欧美大喷水吹潮合集在线观看 | 天天色天天射天天操 | 小珊的性放荡羞辱日记 | 97在线播放免费观看 | 国产欧美精品一区 | 日本久色 | 双性懵懂美人被强制调教 | 婷婷国产 | 91污片| 亚洲精品一区二区三区四区 | 一本色道久久hezyo加勒比 | www.超碰97.com | 亚洲春色一区二区三区 | 97视频在线观看免费高清完整版在线观看 | 久久久久亚洲av成人片 | 美女少妇直播 | 日韩精品视频免费 | 香蕉视频免费在线播放 | 一级黄色视 | 国产亚洲精品精品国产亚洲综合 | 久久久国产精品一区 | 成人小视频免费 |