用八位二進位制表示 128的原碼 反碼 補碼

2021-10-01 18:39:58 字數 577 閱讀 6624

-128沒有原碼和反碼,只有補碼,補碼為 1000 0000。

對n位二進位制原碼、反碼、補碼的取值範圍

對於八位的二進位制來說,原碼和反碼範圍均為-127到127,補碼的範圍為-128到127

???為什麼補碼有-128呢???問題就出在了0上,我們知道原碼與反碼有正負零之分但補碼並沒有。

[+0]原碼=0000 0000, [-0]原碼=1000 0000

[+0]反碼=0000 0000, [-0]反碼=1111 1111

[+0]補碼=0000 0000, [-0]補碼=0000 0000

那麼-0的補碼是如何求得的呢?

負數的補碼是反碼的整體加一,符號位上的進製捨棄,所以-0的第一位是數值為並不是符號位。

!!!補碼的符號位保持不變不等於原碼的第一位不變。故保持-0的符號位1不變,反碼進行加一操作:1111 1111 + 1 = 1 0000 0000,數值位產生了進製,所以補碼能表示的個數中比原碼、補碼多了乙個數 1 0000 0000,即-128.

LintCode 二進位制表示

給定乙個數將其轉換為二進位制 均用字串表示 如果這個數的小數部分不能在 32 個字元之內來精確地表示,則返回 error 樣例 n 3.72 返回 error n 3.5 返回 11.1 題目很簡單,直接上 吧 public class binaryrepresention return res.r...

LintCode 二進位制表示

給定乙個數將其轉換為二進位制 均用字串表示 如果這個數的小數部分不能在 32 個字元之內來精確地表示,則返回 error 您在真實的面試中是否遇到過這個題?yes 樣例n 3.72 返回 error n 3.5 返回 11.1 好久沒做題 有點懵逼 根據資料試出來的 臥槽 public class ...

二進位制表示 LintCode

給定乙個數將其轉換為二進位制 均用字串表示 如果這個數的小數部分不能在 32 個字元之內來精確地表示,則返回 error 樣例 n 3.72 返回 error n 3.5 返回 11.1 ifndef c180 h define c180 h include include using namesp...