帶符號數(shù)的原碼、反碼與補碼_第1頁
帶符號數(shù)的原碼、反碼與補碼_第2頁
帶符號數(shù)的原碼、反碼與補碼_第3頁
帶符號數(shù)的原碼、反碼與補碼_第4頁
帶符號數(shù)的原碼、反碼與補碼_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、一帶符號數(shù)的原碼、反碼與補碼 所謂帶符號數(shù),其實就是一個二進制數(shù)據(jù),它的最高位所代表的是符號,其余位是其“絕對值”。例如0101_0011,這個數(shù)據(jù)如果是帶符號數(shù),那么最高位的0就是代表這個數(shù)據(jù)為正數(shù),其后的101-0011則代表這個數(shù)據(jù)的絕對值,為+83D。如果是1101_0011,則代表-83D。1.1 原碼原碼就是按照正數(shù)的符號位為0,負數(shù)的符號位為1,其他位就是數(shù)據(jù)的絕對值即可。例如當機器字長為8bit的二進制數(shù)時,它的最高位為符號位,因此其余的7bit位數(shù)據(jù)的絕對值。因此原碼所能表示的數(shù)據(jù)范圍是:- (2n-1-1)+(2n-1-1)當字長為8bit,則原碼能表示的范圍就是:-127

2、+127例如83的原碼就是:0101_0011當字長為16bit,則原碼能表示的范圍就是:-32767+32767例如-83的原碼就是:1000_0000_0101_00111.2 反碼對于一個帶有符號位的二進制數(shù)來說,正數(shù)的反碼與其原碼相同,負數(shù)的反碼為其原碼除符號位外其余各位按位取反。 例如當字長為8bit時,+83D的反碼就是:0101_0011,-83D的反碼就是1010_1100負數(shù)的反碼與原碼有很大的差別,一般情況下,反碼主要用來當做求二進制數(shù)補碼的中間形式。反碼所表示的數(shù)據(jù)范圍與原碼相同:- (2n-1-1)+(2n-1-1)1.2 補碼正數(shù)的補碼與其原碼相同,負數(shù)的補碼為其反碼

3、在最低位加1。例如:X=+101_1011 X原碼=0101_1011 X補碼=0101_1011X=-101_1011 X原碼=1101_1011 X補碼=1010_0101補碼表示的范圍是:- 2n-1+(2n-1-1)當字長為8bit,則原碼能表示的范圍就是:-128+127當字長為16bit,則原碼能表示的范圍就是:-32768+32767關于0,它有兩個補碼:正零:0000_0000負零:1000_0000二通過補碼求解原值的方法1)對于正數(shù),它的原值與補碼相同;2)對于負數(shù),它的原值就是將補碼除符號位以外,安位取反之后,末位加1。例如【X】=0101_1001,由于最高位是0,因此

4、是正數(shù),原值與補碼相同,也是0101_1001,轉換成10進制就是+89D。【X】=1101_1010,由于最高位是1,因此原值是負數(shù),符號位外其余各位安位取反為:1010_0101,然后末位加1可得到原值:1010_0110,就是-38D。三利用補碼進行加減運算3.1 加法運算對于加法運算,首先需要計算【X+Y】補,然后再經(jīng)過補碼轉原碼的方式獲得原值?!綳+Y】補=【X】補+【Y】補例如:X=+011_0011 Y=-010_1001 即:X=+51D, Y=-41D則【X】原=0011_0011 【X】反=0011_0011 【X】補=0011_0011 【Y】原=1010_1001 【Y

5、】反=1101_0110 【Y】補=1101_0111因此【X+Y】補=【X】補+【Y】補=0011_0011+1101_0111=0000_1010,再換原碼為+10D。3.2 減法運算對于減法運算,首先需要計算【X-Y】補,然后再經(jīng)過補碼轉原碼的方式獲得原值。例如:X=+011_1001 Y=+100_1101 即:X=+57D, Y=+77D則 【X】原=0011_1001 【X】反=0011_1001 【X】補=0011_1001 【-Y】原=1100_1101 【-Y】反=1011_0010 【-Y】補=1011_0011因此【X-Y】補=【X】補+【-Y】補=0011_1001+1

6、011_0011=1110_1100,將【X-Y】補低7位進行取反,為1001_0011,再將其末位加1,可得【X-Y】原=1001_0100,轉換成10進制的數(shù)即為-20D。 由此可知,補碼的意義就是可以把所有的加法與減法都轉換成加法進行計算,這樣非常適用于計算機進行運算處理。四關于求補碼的深入討論通過上面這個表可知,-128如果用8bit的二進制數(shù)表示就是1000_0000,“反碼+1”的計算方法并不適用-128,所以-128這個數(shù)比較特殊,需要特殊記憶。其實求一個數(shù)的補碼,按照補碼最原始的定義,其實就是正數(shù)與原碼相同,而負數(shù)采用“模減去絕對值”的方法來求,這是求補數(shù)的通用方法,適合于各種

7、進制、各種大小數(shù)字。 下面就從計算機的角度深入理解補碼的概念。4.1 模與補數(shù)的概念在日常生活當中,可以看到很多這樣的事情:把某物體左轉 90 度,和右轉 270 度,在不考慮圈數(shù)的條件下,最終的效果是相同的;把分針倒撥 20 分鐘,和正撥 40 分鐘,在不考慮時針的條件下,效果也是相同的;把數(shù)字 87,減去 25,和加上 75,在不考慮百位數(shù)的條件下,效果也是相同的;。上述幾組數(shù)字,有這樣的關系:90 + 270 = 36020 + 40 = 6025 + 75 = 100式中的 360、60 和 100,就是“?!保ㄒ部梢岳斫獬伞斑M制”)。式中的 90 和 270、20 和 40,以及 2

8、5 和 75,就是一對“互補”的數(shù)字。知道了“?!?,求某個數(shù)字的“補數(shù)”,就是輕而易舉的了:如果模為 365,數(shù)字 120 的補數(shù)為:365 - 120 = 245。用補數(shù)代替原數(shù),可把減法轉變?yōu)榧臃?。出現(xiàn)的進位就是模,此時的進位,就應該忽略不計。4.2 二進制數(shù)的模前面說過的十進制數(shù) 25 和 75,它們是 2 位數(shù)的運算,模是 100,即 1 的后面加上 2 個 0。如果有 3 位數(shù)參加運算,模就是 1000,即 1 的后面加上 3 個 0。這里的 1000,是十進制數(shù)的一千,可以寫成 103,即 10 的 3 次方。推論:有多少位數(shù)參加運算,模就是在 1 的后面加上多少個 0。對于二進制

9、數(shù)字,模也是這樣推算。如果是 3 位二進制數(shù)參加運算,模就是 1000,即1的后面加上3個0;那么當 8 位二進制數(shù)參加運算,模就是 1 0000 0000,即1的后面加上8個0。注意:這里提到的 1、0,都是二進制數(shù)。8 位二進制數(shù)的??梢园凑帐M制寫成 28,即 256。16 位數(shù)二進制數(shù)的模,就是 216,按照十進制,它就是 65536。4.3 二進制數(shù)的補碼前面說過的十進制數(shù) 2二進制數(shù)的補碼,求二進制數(shù)的補數(shù),目的是往計算機里面存儲。在計算機里面,存放的數(shù)字什么的,都稱為機器碼;那么二進制形式的補數(shù),也就改稱為補碼了。一般情況下,都是以 8 位二進制數(shù)來討論補碼,少數(shù)也有用 16 位

10、數(shù)的。計算時加上正數(shù),是不需要進行求取補數(shù)的;只有進行減法(或者加上負數(shù)),才需要對減數(shù)求補數(shù)。補碼就是按照這個要求來定義的:正數(shù)不變,負數(shù)即用模減去絕對值。 已知一個數(shù) X,其 8 位字長的補碼定義為: (1) 正數(shù):X ; 0 <= X <= +127 (正數(shù)和0的補碼,就是該數(shù)字本身)(2) 負數(shù):28 |X| ; 128 <= X < 0 (負數(shù)的補碼,其實就是用 1 0000 0000(2的8次方),減去該數(shù)字的絕對值)。例如 X = 126,其補碼為 1000 0010,計算方法如下: 1 0000 0000 0111 1110 1000 0010可以看出,按照補碼的定義來求補碼,概念十分清晰,方法、步驟也是十分簡單的。應用補碼進行計算用補碼計算:832558。83都變成補碼,再用加法運算> 0101 001125> 1 0000 0000 - 0001 1001> + 111

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論