128的補碼1000 0000,看了很多文章,還是不太懂?

時間 2021-06-25 22:25:30

1樓:saltarea

不要管原碼,補碼這些名詞。8位二進位制數從0x00到0xff,有256種狀態,能夠對應256個數,如果表示無符號數,就能表示0-255這256個十進位制數。如果表式有符號數,我們用它表示0到128,和-128到-1的數,這有乙個非負非正數0 ,127個正數,128個負數,二進位制數0x00,到0xff,單調遞增,我們對應的十進位制有符號數也按單調遞增對應,非負數,很簡單0x00 == 0 ,0x01 == 1 ......

0x6f == 126 ,0x7f ==127,剩下128個單調遞增的負數,最小是-128(0x80),最大時-1(0xff),

可以看到規律0x80 = 128 = -128 + 2^8 ;0xff = -1 + 2^8;

簡單來說,我有256個數字,用完一半,還剩128個數字(128-255),我要用它表示-128到-1的這128個負數,最簡單的規律方法有兩種,一種負數遞增的規律,一種負數遞減的規律,我們通用第一種。

2樓:掌中萌虎

首先你要有個感性的認識, 什麼是補碼. 補碼就是可以把一種操作變成另一種操作. 比如常用的例子時鐘, 退後三小時和前進九小時後的表盤你是無法區分我做的究竟是哪一種操作,所以可以認為兩個操作是一樣的.

計算機裡面原碼減法的時候首先還要比絕對值大小, 比較繁瑣,換成補碼一律是加法,因為你的減法總可以換成乙個加乙個複數.

相信我上面說的這一堆你也知道, 現在我就教你一種簡單的補碼值判斷方法. 正數自不必說;

負數:你可以在頭腦裡想象乙個座標軸, n位負數補碼最高位代表的是 - 2^n-1 , 而後面的每一位都是正權, 比如最低位1, 那就是+1, 次低位1代表的就是+2, 以此類推.

舉幾個直觀的例子:

1000 0000, 最高位1 負權 -128 低位全部是0, 所以代表的至就是-128;

1100 0000, 高位1 代表-128, 次高位1代表正權+64, 所以這個補碼代表的值是-128 + (+64) = -64;

1111 1111, 同上補碼的值為: -128 + 64 +32 + 16 + 8 + 4 + 2 + 1 = -1;

有了這種想法後, 我相信對補碼的理解會透徹很多.

補碼10000000為什麼可以表示 128?

還沒想好啊 前幾天才想了這個問題,我的理解是這樣的 要是有不對的地方還希望指出 時鐘有12格,乙個指著3點的時針要是想撥到6點,可以選擇順時針撥3,或者逆時針撥9,達到的效果完全一樣,其實就是3和 9對於mod12來說是一樣的,也叫做3和 9同餘。那麼對於8位二進位制數,模的數就變為2 8 256,...

為什麼補碼 10000000 的真值是 128

已重置 建議去看一下計算機組成原理,計算機有原碼,補碼和反碼三種,原碼和反碼是不能表示 128的,補碼可以表示 128因為 1 127 10000001 原 11111111 原 11111111 補 10000001 補 10000000 補 128 相當於 0 原但是不能由它反推 0的原碼! h...

請問cpu是如何分辨補碼與非補碼的?

土地測量員 cpu不需要分辨。它只是機械地根據指令的操作碼去運算元據,資料的表示以及解釋都是由程式設計師決定和把控的。以x86為例,比方說操作碼是mul,就把資料當成無符號整型,根據無符號整型乘法的規則去運算 操作碼是imul,就把資料當成有符號整型 用的補碼表示 根據補碼乘法規則去運算。除法也是如...