0x00 前言
----萬般皆苦,唯有自渡;人生苦短,我亦朝陽
0x01 機器數--二進位制數
機器數 | 數字在計算機中的二進位制表示形式,且有對應的符號位 |
符號位 | 二進位制數的最高位(第一位),且正數為0,負數為1。如00000110為6,10000110為-6 |
機器的字長 |
機器內部裝置一次能表示的二進位制位數。 8bit=1Byte,即,位元組的整數倍為字長,如8位、16位 |
真值 |
帶符號位的機器數對應的真正數值。 如二進位制數10000110的真值為為二進位制的-0000110,或十進位制的-6,而不是134 |
0x02 原碼,反碼,補碼等
概念 | 使用 | |
原碼 | 符號位加上真值的絕對值 | 如-6的原碼為10000110,8的原碼為00001000 |
反碼 |
正數的反碼為其本身,即與原碼相同; 負數的反碼為原碼的基礎上, 符號位不變,其餘各位取反(0和1互變) |
如-6的反碼為11111001;6的反碼還是00000110 |
補碼 |
正數的補碼為其本身,即與原碼相同; 負數的補碼為其反碼+1 數0的補碼錶示是唯一,即00000000 |
如-6的補碼為11111010;8的補碼還是00001000 |
總結 |
正數的原碼、反碼、補碼相同;負數的如上 |
|
負數的補碼轉十進位制 |
1、各位取反;2、轉十進位制;3、加符號,再-1 |
如11111010:1、00000101; 2、5; 3、-6 |
0x03 位運算子
表示式/宣告 | 二進位制數 | 備註 |
int a=6; | 00000110 | 定義整型變數 |
int b=11; | 00001011 | |
a&b | 00000010 | 按位與。有0為0 |
a|b | 00001111 | 按位或。有1為1 |
a^b | 00001101 | 按位異或。不同為1 |
~a | 11111001 | 取反。0和1互變 |
a>>2 | 00000001 |
a的二進位制數都向右移2位。低位捨棄,高位: a為正數時,最高位補0 a為負數時,最高位看編譯系統是補0/1 |
a<<2 | 00011000 | a的二進位制數都向左移2位。高位丟棄,低位補0 |
0x02 編外
----內容為本人查閱資料理解,如有侵權,請及時聯絡本人