計算機基礎-補碼

原碼

最高位0表示正,1表示負,其餘二進制位是該數字的絕對值的二進制位。如:-5的原碼爲10101

原碼簡單易懂,但加減運算複雜,存在加減乘除四種運算,增加了cpu的複雜度,零的表示不唯一

反碼

正數的反碼與其原碼相同,負數的反碼是對正數逐位取反,符號位保持爲1

如:-5的反碼爲11010

反碼運算不便,也沒有在計算機中應用

補碼

(1)已知十進制求二進制

求正整數的二進制 除2取餘,直至商爲零,餘數倒敘排序

求負數的二進制 先求與該負數相對應的正整數的二進制代碼,然後將所有位取反,末尾加1,不夠位數時左邊補1

求零的二進制 全是零

(2)已知二進制求十進制

如果首位是0,則表明是正整數,按普通方法求

如果首位是1,則表明是負整數,將所有位取反,再加一,所得數字就是該負數的絕對值

如果全是零,則對應的十進制也是零

Q : 一個int型的變量所能夠存儲的數據範圍是多大?

int佔4個字節,32位
int所能存儲的最大值二進制表示:
0111 1111 1111 1111 1111 1111 1111 1111
用十六進制表示 : 0x7FFFFFFF

int所能存儲的最小值二進制表示:
1000 0000 0000 0000 0000 0000 0000 0000
用十六進制表示 0x80000000

8位二進制所代表的的十進制示意圖

二進制 十進制
0000 0000 0
0000 0001 1
0111 1111 127
1000 0000 -128
1000 0001 -127
1000 0010 -126
1111 1111 -1
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章