每天一個新知識:深入瞭解進制運算

1. 瞭解數據寬度

計算機:內存!給數據增加數據寬度。
C 和 C++ Java都需要定於數據的類型。計算機底層需要我們給這些數據定義寬度。
位 0 1
二進制: 0 1111 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 121 0 1 2 3 4 5 6 7 8 9 a b c d e f
字節 0~0xFF
字 0~0xFFFF
雙字 0~0xFFFFFFF
在計算機中,每一個數據都需要給它定義類型。給它定義寬度。在內存中的寬度。

在這裏插入圖片描述

2.有符號數規則

最高位是符號位:1 (負數) 0(正數)
原碼反碼補碼
編碼規則
有符號數的編碼規則
原碼: 最高位符號位,對齊它的爲進行本身絕對值即可。
反碼:
a.正數:反碼和原碼相同
b.負數:符號位一定是1,其餘位對原碼取反。
補碼:
a.正數:補碼和原碼相同
b.負數:符號位一定是1,反碼+1

測試
現在我說的這些都是 8 位
如果是正數,那都是一樣的。
1
原碼 0 0 0 0 0 0 0 1
反碼 0 0 0 0 0 0 0 1
補碼 0 0 0 0 0 0 0 1
現在我說的這些都是 8 位
如果是負數
-1
原碼 1 0 0 0 0 0 0 1
反碼 1 1 1 1 1 1 1 0
補碼 1 1 1 1 1 1 1 1
-7
原碼 1 0 0 0 0 1 1 1
反碼 1 1 1 1 1 0 0 0
補碼 1 1 1 1 1 0 0 1

3+5=? = 11 + 101 = 1000
十進制:1 2 3 4 5
二進制 1 10 11 100 101

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章