相關(guān)推薦
您可能對下面課程感興趣
微機原理與接口教程

120小節(jié)已有116528人學(xué)過

原碼、反碼、補碼的換算
發(fā)布時間:2023-07-20 09:18 [ 我要自學(xué)網(wǎng)原創(chuàng) ] 發(fā)布人: 快樂小女 閱讀: 2104

C語言中,原碼,補碼和反碼怎么換算?

原碼、反碼、補碼都是有符號定點數(shù)的表示方法。

一個有符號定點數(shù)的最高位為符號位,0是正,1是副。

以下都以8位整數(shù)為例,

原碼就是這個數(shù)本身的二進(jìn)制形式。

例如

1000001 就是-1

0000001 就是+1

正數(shù)的反碼和補碼都是和原碼相同。

負(fù)數(shù)的反碼是將其原碼除符號位之外的各位求反

[-3]=[10000011]=11111100

負(fù)數(shù)的補碼是將其原碼除符號位之外的各位求反之后在末位再加1。

[-3]=[10000011]=11111101

一個數(shù)和它的補碼是可逆的。

為什么要設(shè)立補碼呢?

第一是為了能讓計算機執(zhí)行減法:

[a-b]=a+-b)補

第二個原因是為了統(tǒng)一正0和負(fù)0

正零:00000000

負(fù)零:10000000

這兩個數(shù)其實都是0,但他們的原碼卻有不同的表示。

但是他們的補碼是一樣的,都是00000000

特別注意,如果+1之后有進(jìn)位的,要一直往前進(jìn)位,包括符號位。ㄟ@和反碼是不同的。

[10000000]

=[10000000]+1

=11111111+1

=(1)00000000

=00000000(最高位溢出了,符號位變成了0

有人會問

10000000這個補碼表示的哪個數(shù)的補碼呢?

其實這是一個規(guī)定,這個數(shù)表示的是-128

所以n位補碼能表示的范圍是

-2^(n-1)2^(n-1)-1

n位原碼能表示的數(shù)多一個

微機原理與接口教程
我要自學(xué)網(wǎng)商城 ¥30 元
進(jìn)入購買
文章評論
0 條評論 按熱度排序 按時間排序 /350
添加表情
遵守中華人民共和國的各項道德法規(guī),
承擔(dān)因您的行為而導(dǎo)致的法律責(zé)任,
本站有權(quán)保留或刪除有爭議評論。
參與本評論即表明您已經(jīng)閱讀并接受
上述條款。
V
特惠充值
聯(lián)系客服
APP下載
官方微信
返回頂部
相關(guān)推薦
您可能對下面課程感興趣
微機原理與接口教程

120小節(jié)已有116528人學(xué)過

分類選擇:
電腦辦公 平面設(shè)計 室內(nèi)設(shè)計 室外設(shè)計 機械設(shè)計 工業(yè)自動化 影視動畫 程序開發(fā) 網(wǎng)頁設(shè)計 會計課程 興趣成長 AIGC