介紹
二進制數可以分爲有符號數和無符號數,有符號數,又可以分爲原碼、反碼、補碼。
什麼是有符號呢?
就是 識別正和負數的,在首尾代表 0 爲正 1爲負。無符號就是相反啦。
原碼、反碼、補碼
正數的原碼、反碼、補碼都是一樣,沒有可講的。
負數
負數的原碼,最高位是1,反碼是除了最高位,其餘的與原碼取反,補碼是反碼加1。
舉例:
十進制數 | 原碼 | 反碼 | 補碼 |
---|---|---|---|
1 | 0000 0001 | 0000 0001 | 0000 0001 |
-1 | 1000 0001 | 1111 1110 | 1111 1111 |
二進制算法
主要說明二進制的加、減、乘、除的運算
加法:逢二進一。
0+0=0,0+1=1,1+0=1,1+1=10
減法:向高位借一當二。
1-1=0,1-0=1,0-0=0,0-1=1
乘法:同時爲“1”時結果才爲“1”
0×0=0,0×1=0,1×0=0,1×1=1
除法:跟十進制數的除法類似,只不過結果只有0、1。
另外,關於乘法和移位的關係
左移或者是右移都是二進制數的運算,爲了方便我們人們計算,我們和乘法聯繫起來。
二進制數左移N位,就是這個二進制數對應的十進制數乘以2的N次方。
右移N位,就是十進制數除以2的N次方。
如: 二進制數0000 0100(4) 左移2位是 0001 0000 也就是4X2^2=16
小數的二進制運算
對於十進制小數應乘2,取得整數部分和小數部分,小數部分繼續乘2直到小數位爲0
0.25的二進制 :
0.25*2=0.5 取整是0
0.5*2=1.0 取整是1
即0.25的二進制爲 0.01 ( 第一次所得到爲最高位,最後一次得到爲最低位)
0.8125的二進制
0.8125*2=1.625 取整是1
0.625*2=1.25 取整是1
0.25*2=0.5 取整是0
0.5*2=1.0 取整是1
即0.8125的二進制是0.1101(第一次所得到爲最高位,最後一次得到爲最低位)
原碼、反碼、補碼錶示範圍
整數 | |
---|---|
原碼 | -(2^n-1) - - 2^n-1-1 |
反碼 | -(2^n-1) - - 2^n-1-1 |
補碼 | -2^n-1 - - 2^n-1-1 |