本文將介紹這三種方式的定義和轉換方法,并給出一些例子。
一、什么是原碼
原碼是最直觀的表示方式,就是將一個有符號整數的符號位和數值位按照順序存儲在計算機中。符號位通常是較高位,0表示正數,1表示負數。數值位就是該整數的絕對值的二進制形式。例如,8位二進制數可以表示-127到127之間的整數,其中00000000表示0,00000001表示1,01111111表示127,10000000表示-0,10000001表示-1,11111111表示-127。
二、什么是反碼
反碼是對原碼進行按位取反的操作,但是符號位不變。也就是說,正數的反碼和原碼相同,負數的反碼是除了符號位之外的其他位取反。例如,8位二進制數的反碼表示如下:
00000000(原碼) -> 00000000(反碼)
00000001(原碼) -> 00000001(反碼)
01111111(原碼) -> 01111111(反碼)
10000000(原碼) -> 11111111(反碼)
10000001(原碼) -> 11111110(反碼)
11111111(原碼) -> 10000000(反碼)
三、什么是補碼
補碼是在反碼的基礎上加1的結果,也就是說,正數的補碼和原碼相同,負數的補碼是在其反碼的最低位加1。例如,8位二進制數的補碼表示如下:
00000000(原碼) -> 00000000(補碼)
00000001(原碼) -> 00000001(補碼)
01111111(原碼) -> 01111111(補碼)
10000000(原碼) -> 10000000(補碼)
10000001(原碼) -> 11111111(補碼)
11111111(原碼) -> 10000001(補碼)