⑴ 十進制數的原碼,反碼,補碼,表示形式
上述十進換轉為二進制分別為
+56 +316 -115 -0 -158 +85
符號位0為正數符號位1為負數
0111000
0100111100
11110011
10
110011110
01010101
原碼:正數的原碼與它的二進位相同加上符號位0得
負數的原碼的數值部分與它的二進位相同符號位為1
56D=111000B
56原
316D=100111100B
316原
-115D=-1110011B
11110011=243原
-0=0原
-158D=10011110B
110011110=414原
85D=1010101B
85原
正數的補碼與它的二進位相同,符號位為0.負數的補碼的數值部分等於它的二進位按位取反在最低位上加1,符號位取
反後為1
56D=111000B
56補
316D=100111100B
316補
-115D=-1110011B
10001100+1=141補
-0=0補
-158D=10011110B
101100001+1=354補
85D=1010101B
85補
正數的反碼的數值部分等於它的二進制位相同,取8位二進位
負數的反碼的數值部分等於它的8位二進制位按位取反
56D=111000B
56反
316D=100111100B
316反
-115D=-1110011B
0001100=12反
-0=0反
-158D=10011110B
01100001=97反
85D=1010101B
85反
⑵ 假定計算機字長為8,寫出十進制數-27的原碼、反碼和補碼表示形式
估計你是想問37(37默認為十進制數)用二進製表示的原碼,反碼,補碼
計算機的字長為8,37的原碼,反碼,補碼:
37的2進制的原碼為:00100101
37的2進制的反碼為:11011010
37的2進制的補碼為:11011011
由此可見37-37=00100101-00100101=00100101+11011011=100000000=00000000=0
(高於8位的就溢出了那麼100000000=00000000)
既然您問了10進制的表示方法,理論上是如下格式的:
不過一般不用10進制的原碼,反碼,補碼。
37的10進制的原碼為:00000037
37的10進制的反碼為:99999962
37的10進制的補碼為:99999963
比如數字「2」,「2」用十進製表示原碼,反碼,補碼
分別如下:02,97,98
在此給你舉個例子。
比如:2-2=02-02=02+98=00(100)=0
這里位數是兩位的計算機,高於兩位的就溢出了。
順便說一下:
(1)補碼=反碼+1。
(2)正數的原碼為其本身,負數的原碼要加上首位符號標志位(最高位為1)。
對於(2),舉例:5=0000
0101,-5=1111
1011
(補碼)
⑶ .假定計算機字長為8,寫出十進制數-27的原碼、反碼和補碼表示形式
原碼:最高位符號位為1,低7位把27轉成十六進制11011,因此8位原碼是
1001
1011,也就是十六進制的0x9B
反碼:用1111
1111
減去
11011,得到
1110
0100,也就是十六進制的0xE4
補碼:反碼+1
=
1110
0101,也就是十六進制的0xE5
⑷ 十進制的原碼、補碼
十進制-67的原碼是01000011、反碼是10111100和補碼是10111101。
轉換規則:
1、負整數的原碼為二進制前面加符號位;
-67=1000011(二進制)=11000011(原碼)
2、負整數的反碼=原碼各位取反(除了符號位外);
11000011(原碼)=10111100(反碼)
3、負整數的補碼=負整數的反碼+00000001;
10111100(反碼)=10111101(補碼)
(4)十進制數37的源碼補碼反碼擴展閱讀:
已知一個數的補碼,求原碼的操作其實就是對該補碼再求補碼:
⑴如果補碼的符號位為「0」,表示是一個正數,其原碼就是補碼。
⑵如果補碼的符號位為「1」,表示是一個負數,那麼求給定的這個補碼的補碼就是要求的原碼。
例:已知一個補碼為11111001,則原碼是10000111(-7)。
因為符號位為「1」,表示是一個負數,所以該位不變,仍為「1」。
其餘七位1111001取反後為0000110;再加1,所以是10000111。
⑸ 十進制數(-39.28)的原碼、反碼、補碼各是多少了
十進制數(-39.28)的原碼、反碼、補碼各是多少了?
-39的原碼:(1000000000100111)二
-39的反碼:(1111111111011000)二
-39的補碼:(1111111111011001)二
-0.28的原碼:(1010010010010010)二
-0.28的反碼:(1101101101101101)二
-0.28的補碼:(1101101101101110)二
-39.28的原碼:(1000000000100111 .0100100100100100)二
-39.28的反碼:(1111111111011000 .1011011011011011)二
-39.28的補碼:(1111111111011001 .1011011011011100)二
⑹ 將十進制-37轉換成二進制,用補碼表示
錯了2樓的
-37的原碼為10100101 其中最高位1表示負號(如果是正的話就用0表示)
補碼:
正數的補碼與原碼相同
負數的補碼是該數的反碼加1
所以要先求反碼
反碼
正數的反碼為本身
負數的反碼是 符號位最高位為1 其餘各位為該數絕對植的原碼按位取反
-37的反碼為:11011010
所以答案是 11011011
⑺ -37的二進制原碼反碼及補碼是多少
估計你是想問37(37默認為十進制數)用二進製表示的原碼,反碼,補碼計算機的字長為8,37的原碼,反碼,補碼:37的2進制的原碼為:00100101
37的2進制的反碼為:11011010
37的2進制的補碼為:11011011
由此可見37
-37=00100101-00100101=00100101+11011011=100000000=00000000=0(高於8位的就溢出了那麼100000000=00000000)
⑻ 38帶符號十進制數的原碼,反碼,補碼表示是
原碼為: (38)10=(32+4+2)10=(00100000+0100+0010)2=(0010 0110)2
反碼為:1101 1001
正數的補碼為其本身,即:0010 0110
⑼ 十進制數—36的原碼,反碼和補碼是什麼
-36
原碼:11011100 //最高位為符號為正數為0負數為1
反碼:10100011 //符號位不變其它位置取反
補碼:10100100 //反碼加+1=補碼
⑽ 一個數的原碼,反碼,補碼怎麼算
計算機中的存儲系統都是用2進制儲存的,對我們輸入的每一個信息它都會自動轉變成二進制的形式,而二進制在存儲的時候就會用到原碼,反碼和補碼例如:輸入25原碼是:0000000000011001反碼: 1111111111100110 補碼: 1111111111100111
數值在計算機中表示形式為機器數,計算機只能識別0和1,使用的是二進制,而在日常生活中人們使用的是十進制,"正如亞里士多德早就指出的那樣,今天十進制的廣泛採用,只不過我們絕大多數人生來具有10個手指頭這個解剖學事實的結果.盡管在歷史上手指計數(5,10進制)的實踐要比二或三進制計數出現的晚. "(摘自<<數學發展史>>有空大家可以看看哦~,很有意思的).為了能方便的與二進制轉換,就使用了十六進制(2 4)和八進制(23).下面進入正題.
數值有正負之分,計算機就用一個數的最高位存放符號(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等其他高級語言中使用的都是原碼