Ⅰ 4位補碼可表示的整數的數值范圍是怎麼算的
4位補碼可表示的整數的數值范圍是十進制-8~7.
1000 → -8; 1001 → -7; 1010 → -6; 1011 → -5; 1100 → -4; 1101 → -3;
1110 → -2; 1111 → -1; 0000 → 0; 0001 → 1; 0010 → 2; 0011 → 3;
0100 → 4; 0101 → 5; 0110 → 6; 0111 → 7.
演算法:正數的符號位是0,負數的符號位是1.正數的反碼、補碼與原碼一樣.負數的反碼是讓符號位不變,數據位按位取反;補碼是將反碼加1.
Ⅱ 什麼叫做補碼
補碼,應該是最容易理解的知識了。
小學生都可以自己摸索出來。
按照四位二進制來說,共有 16 組代碼。
數字 0 的二進制,就是 0000,
數字 1 的二進制,就是 0001,
。。。
數字 7 的二進制,就是 0111。
可見下表:
四位補碼
總結:
零和正數的補碼,就是數字本身(也可轉為二進制)。
負數的補碼,就是: 16+這個負數。
(如果是 8 位二進制,就改用: 256 + 這個負數。)
--------
整個推算過程,並不需要使用「原碼反碼符號位」這些垃圾。
計算時,使用十進制,簡單方便。得出的補碼,當然也是十進制。
如果需要二進制,就變換一下。
補碼,很難嗎?
如果不涉及原碼反碼符號位,就一點也不難。
-----------
補碼有什麼用呢?
利用補碼,可以把減法運算,轉換成加法。
(所以,在計算機中,有一個加法器,就夠用了。)
例如:6-2 = 4,用補碼運算如下:
6 的補碼是 0110、-2 的補碼是 1110。
0110 + 1110 = (1) 0100 (= 4 的補碼)
(括弧中的 1,是進位,舍棄不要了。)
注意:
如果運算結果超出了-8~+7 的范圍,結果將是錯的。
這種現象稱為「溢出」。
再注意一下:進位,並不等於溢出。
---------
因為補碼的這個特性,所以,在計算機中,只是使用補碼存放數據。
而原碼反碼,在計算機中,都是不存在的。
原碼反碼 的用途,只是用於「筆算」。
其實,筆算的方法,並非只有「取反加一」。
原碼反碼,只是磚家為了增加收入,瞎編的垃圾而已。
所以,大家,完全不必在原碼反碼上浪費時間精力。
但是,考試怎麼辦?
呃 ...,千萬別跟老師較勁,他怎麼講,你就怎麼答吧。
Ⅲ 若一個4位補碼由2個1和2個0組成,則可表示最小十進制整數為多少
最小為-6。
解析:既然最小,最高位符號位必然為1,設原碼為1abc,則補碼為:1a'b'c'+1,又因為數字要盡可能的小,所以原碼次高位至少應該為1,即負數變得更小;則a』=0;
現假設b=1,則b'=0;c'+1必須為0,則發生了進位,補碼變為1100,滿足要求,且除了符號位的高位都為1,顯然最小,即補碼為1010,表示的最小數為1110,即-6。
計算機系統
在計算機系統中,數值一律用補碼來表示和存儲。使用補碼,可以將符號位和數值域統一處理;同時,加法和減法也可以統一處理。
原碼:在數值位前加一位符號位,即為原碼。符號位0表示正數,1表示負數。
反碼:原碼的符號位不變,數值位按位取反即得到反碼。
補碼:正整數的補碼與原碼相同;負整數的補碼,要將其原碼除符號位外的所有位取反後加1,也就是反碼加1。
Ⅳ 四位二進制補碼所能表示的十進制整數范圍是______至______
四位二進制補碼所能表示的十進制整數范圍是-8至7。
已知一個數的補碼,求原碼的操作其實就是對該補碼再求補碼。如果補碼的符號位為「0」,表示是一個正數,其原碼就是補碼。即四位二進制補碼0111 =四位二進制原碼0111 = 1*2^2+1*2^1+1*2^0=十進制整數7。
如果補碼的符號位為「1」,表示是一個負數,求給定的這個補碼的補碼就是要求的原碼。即四位二進制補碼1000符號位為「1」,表示是一個負數,所以該位不變,仍為「1」。其餘三位000取反後為111;再加1,所以是1000。負的四位二進制原碼-(1000)=-( 1*2^3)=十進制整數-8。
(4)用四位存儲一個正數的補碼擴展閱讀:
補碼表示統一了符號位和數值位,使得符號位可以和數值位一起直接參與運算,這也為後面設計乘法器除法器等運算器件提供了極大的方便。
補碼概念的引入和當時運算器設計的背景不無關系,從設計者角度,既要考慮表示的數的類型(小數、整數、實數和復數)、數值范圍和精確度,又要考慮數據存儲和處理所需要的硬體代價。因此,使用補碼來表示機器數並得到廣泛的應用。
Ⅳ 正數的補碼是什麼
正數的補碼就是原碼本身,負數的補碼是其反碼加1。
計算機中的有符號數有即原碼、反碼和補碼。三種表示方法均有符號位和數值位兩部分,符號位都是用0表示「正」,用1表示「負」。在計算機系統中,數值一律用補碼來表示和存儲。原因在於,使用補碼,可以將符號位和數值域統一處理;同時,加法和減法也可以統一處理。
補碼:在反碼的基礎上加1,這樣可以方便計算機進行計算,可以讓「最高位符號位都能參與計算」。原碼:位元組的最高位為符號位,其餘表示數值大小,最簡單;反碼:正數的反碼和原碼一樣,負數的反碼除最高位符號位外,其他位都取反。
補碼
補碼「模」概念的引入、負數補碼的實質、以及補碼和真值之間的關系所揭示的補碼符號位所具有的數學特徵,無不體現了補碼在計算機中表示數值型數據的優勢,解決了符號的表示的問題,克服了原碼加減法運算繁雜的弊端,可有效簡化運算器的設計。
補碼表示統一了符號位和數值位,使得符號位可以和數值位一起直接參與運算,這也為後面設計乘法器除法器等運算器件提供了極大的方便。補碼概念的引入和當時運算器設計的背景不無關系,考慮到了數據存儲和處理所需要的硬體代價。
以上內容參考網路——補碼
Ⅵ 一個4位有符號二進制整數,它的補碼能夠表示的最大數是+7,最小數為什麼是-8
對於n位有符號數,補碼數值表示範圍為
[- 2n-1,2n-1-1],而且[-8]補 = 1000 B,這是人為規定的。
當然原碼四位二進制為0111---1111,最高位是符號位,所以是-7到7.同理,反馬即是原碼取反,自然也是-7到7.
Ⅶ 計算機儲存一個數以補碼形式
-5是這樣存儲的。
首先將5保存至機器字長大小的一個空間(對於現在的機器是32位,在此以8位為例)
00000101,完全反轉,11111010,然後加一11111011
計算機內存儲的-5便是這樣
11111011並不是-3即使是4位字長也不應該把1011當作-3(當別人告訴你這是補碼的時候,如果是原碼就算了)
Ⅷ 為什麼4位補碼1000表示-8
4位二進制原碼中沒有-8的表示,就不能用平時口訣的方法把-8進行原碼補碼的轉換了。
要理解4位二進制補碼中的-8是1000這結論,只能回到補碼的起點。
介紹預備知識:
先理解:補碼利用模和同餘概念在運算時可使減法轉換成減法。
例如:在12小時制中,以1點鍾為起點,向後逆時針轉2點到11點,但向前順時針轉10點也是可以到11點的。如此就把1點-2點=11點轉換成1點+10點=11點。此處模為12,-2與10對12同餘。
再回到本題:
補碼是在計算意義上存在的,是為了以加法代替減法。
4位有符號二進制中模為8:-8的同餘數就是0,則-8的補碼為-000即1000,其來源為x-8要轉換成x+0的加法計算意義。
這樣也符合補碼的計算。例如-1+-7=-8=
-001(原碼)+-111(原碼)=1111(補碼)+1001(補碼)=11000=1000(補碼)
Ⅸ 如何求一個正數或者負數的原碼,反碼,補碼比如+5
正數的原碼,反碼,補碼就是它的二進制數
負數原碼是它的二進制數
反碼是原碼各位取反0取反是1,1取反是0
補碼就是反碼加1
如+5的原碼,反碼,補碼都是1,101
而-5的原碼是0,101
反碼0,010
補碼0,011
正號用1表示
負號用0表示
Ⅹ 鍵盤輸入4位十進制數,求其補碼並在屏幕上輸出對應的十六進制數,用匯編語言完成程序設計,求指導。
;輸入不超過65535的10進制數,將其以16位2進制數的形式以及4位的16進制數形式顯示補碼
;負數本身用補碼表示,再求補碼即得原碼
;用word類型表達的4位十進制均為正數,所以其補碼即其自身。
CODESEGMENT
ASSUMECS:CODE
XDW0
MSG1DB13,10,'pleaseinputanumber:','$'
MSG2DB13,10,16DUP(0),'B$'
MSG3DB13,10,4DUP(0),'H$'
START:PUSHCS
POPDS
PUSHCS
POPES
LEADX,MSG1
MOVAH,9
INT21H
LEABX,X
MOVAX,0
PUSHAX
AGAIN1:
MOVAH,1
INT21H
CMPAL,13
JELINE0
SUBAL,30H
MOVAH,0
MOVSI,AX
POPAX
MOVCL,10
MOVCH,0
MULCX
ADDAX,SI
PUSHAX
JMPAGAIN1
LINE0:
POPAX
ORAX,AX
JNS@0
NEGAX
ORAX,8000H
@0:
MOVX,AX
;=================
LEADI,MSG2
INCDI
INCDI
MOVCX,16
MOVAX,X
AGAIN2:
ROLAX,1
JC@1
MOVBYTEPTR[DI],30H
JMP@2
@1:MOVBYTEPTR[DI],31H
@2:INCDI
LOOPAGAIN2
;====================================
LEADI,MSG3
INCDI
INCDI
MOVCX,4
MOVAX,X
AGAIN3:
ROLAX,1
ROLAX,1
ROLAX,1
ROLAX,1
MOVDX,AX
ANDDX,0FH
ORDL,30H
CMPDL,39H
JBE@3
ADDDL,7
@3:
MOVBYTEPTR[DI],DL
INCDI
LOOPAGAIN3
;==============
LEADX,MSG2
MOVAH,9
INT21H
LEADX,MSG3
INT21H
MOVAH,4CH
INT21H
CODEENDS
ENDSTART