128轉二進位制是什麼,難道是9位二進位制嗎?那是不是兩個位元組了?

時間 2021-05-10 16:06:04

1樓:California.US

-128的二進位制表示是這個:

(int8_t)0b10000000

也就是(int8_t)0x80

對於8位有符號的0x80,符號位(最高位)為1,所以是負數。

我們來驗證一下這個答案對不對:

要想得到對應的正數,需要對其進行''反補碼''操作。對其減一,得到0x7F,對0x7F取反,我們得到0x80。

還有一種簡單的方法,用0去減128:

>0b00000000 被減數

0b10000000 減數

0b10000000 結果

2樓:者也2016

您現在是不是在學習二進位制?

那麼就需要知道補碼的定義。

對於負數,是需要用補碼來表示的。

如果是有符號位元組型別,其能表示的範圍是-128~127,也即0x80~0x7F。

所以-128只需要乙個有符號位元組即可表示---0x80。

3樓:acebear

這一共是3個問題,要分別回答。看了下現有的回答,把三個問題都混在一起了,特別注意分清這些不同的概念

「-128」轉二進位制是什麼?

是"-1000 0000".

現在內部採用2進製的計算機儲存"二進位制-1000 0000"是不是要用9位(bits)?

不一定。這取決於「負數」的「機內碼」規則,現在的CPU通常預設採用「補碼」的方式儲存負數,這樣8個bits最多可以表示"-128~+127"之間的數,這種方式下,8bits剛剛夠。補碼具體的表達方式見其他回答。

但「補碼」並不是表示負數的唯一方法,用「反碼」表達也完全可以,「反碼」的話的確要用9bits才夠。

x86處理器,有NOT指令取反碼,NEG指令取補碼;只要你願意折騰,你完全可以自己寫個編譯器,讓負數的運算全部在內部用「反碼」來完成,會比用「補碼」麻煩得多,得自己小心處理符號位

那就是2個位元組了?

用「補碼」只用1個位元組就夠了,但你用2個位元組或更多的也行,這取決於你想做啥,具體程式設計時,你用的是 char / word / int 分別會使用 1個位元組/2個位元組/4個位元組

4樓:

-128的二進位制表達是 ,因為數學中的進製轉換是允許有負號和小數點出現的。

它在計算機中的表達是0b10000000 或0x80,因為計算機把負數用它的補碼儲存。 此時最高位的1指示了它是乙個負數。

5樓:日天山君

你要問二進位制是什麼,首先你得確定你要的是原碼還是補碼,如果是給人用一般直接用原碼如果給計算機應該是補碼。

看你問位元組數,感覺你應該是想問補碼。

要求補碼你就得給定乙個模,然後才有這個問題,例如在32位機中,short型別的模是0xffff,int型別的模是0xffffffff。

當模確定了之後,用你要的算的-128去加上這個模,再除以模,得到的餘數就是它的補碼了。

6樓:

-128的8位二進位制表示是 1000 000

首先要注意的是,-128的二進位制表示並不是128的二進位制表示前面加個負號。在計算機裡,負數是用2的補碼表示的。有符號的8位二進位制整數能表示的十進位制數的範圍是-128到+127 所以它沒法表示+128.

127的8位二進位制表示是 0111 1111,再加1就會變成 1000 000. 這實際上就是-128.

7樓:小C

可以用8位補碼表示

補碼的規則是正碼不變(首位為0)負碼取反加一比如int8的 -5: 1 1111011-2: 1 1111110

這樣做的好處是0的表示是唯一的了(+0)

同時可以8位表示 -128: 1 0000000

8樓:C語言劉老師

128的二進位制編碼為 10000000B,如果轉換結果是8位二進位制數

則補碼表示的-128的換算為:

10000000B 取反:01111111,加1:10000000

-128D的二進位制補碼表示為10000000

為什麼-128用二進位制表示為1000000000000000?_z69183787的專欄-CSDN部落格

負數的補碼,是用「模」計算出來的,即:

[X]補 = 256 - |X| = 256- |-128| = 128。

不要用「求反加一」來算,那只不過是乙個經驗公式而已。計算機裡面只有補碼!!!

-128==>128(無符號數)==>1000 0000(-128的無符號數的二進位制)==>0111 1111(取反)==>1000 0000(補碼,加一)(負數的首位為1)

-1==>1(無符號數)==>0000 0001(-1對應無符號數的二進位制)==>1111 1110(取反)==>1111 1111(補碼,加1)(負數的首位為1)

原碼反碼補碼的範圍

8位二進位制數。

原碼 -127~127 -128呢???不是說-128有原碼是1000 0000嗎??

反碼 -127~127

補碼 -128~127

怎麼理解十進位制轉二進位制輾轉相除演算法?

225 1 2 1 2 1 2 0 2 0 2 0 2 0 2 1 2對吧。225 2的餘數不就是2前面的1嗎?112 2的餘數不就是2前面的0嗎?56 2的餘數不就是2前面的0嗎?28 2的餘數不就是2前面的0嗎?14 2的餘數不就是2前面的0嗎?7 2的餘數不就是2前面的1嗎?3 2的餘數不就是...

十進位制轉二進位制為什麼不是除以2?

火皇煌 對於10進製數,從左到右每位的數字代表的單位是 10的0次方 10的一次方 10的二次方 10的三次方。對於2進製,從左到右每位的數字代表的單位是 2的0次方 2的一次方 2的二次方 2的三次方。所以對於乙個十進位制數比如150而言,轉換成二進位制數X 如果先計算最高位,則就是先用150除以...

鐘錶為什麼是十二進位制?

狗兒 雖然十進位制有迷人吸引力,然而,人們發現十進位制的鐘錶使用並沒有給人們帶來方便。從數字分割的通融性來看,10和60相比要差得多,10只有1 2和5等3個約數,涉及到2和5以外的數去平分10就會出現分數或小數,將10這個數3等分更不能均分。而60有1 2 3 4 5 6 10 12 15 20 ...