正數的補碼反碼原碼一樣
負數的反碼是除去符號位,其它位取反
負數的補碼是反碼+1
補碼求補碼得到原碼
補碼求反碼再求補碼得到原碼
無論正數負數,在內存中都是以補碼的形式存儲的
1.進制
進制也就是進位制,是人們規定的一種進位方法.對於任何一種進制—x進制,就表示某一位置上的數運算時就是逢x進一位.
十進制是逢十進一,十六進制是逢十六進一,二進制就是逢二進一
計算機中採用二進制.十六進制只是計算機常用的一種編碼方式
二進制的四位相當於十六進制的一位
二進制的三位相當於八進制的一位
N進制轉換爲十進制
祕訣:當前位上的數乘以基數(N)的位數減一次方
0x17十六進制
017八進制
17十進制
0b17二進制
比特=bit,是二進制位的意思
B=Byte是字節的意思,一字節=8bit
1M說的是1Mbite
下載速度也就是1024/8=128kb/s
一兆比特=1M bit,1B=8bit,所以1兆比特=1/8 MB
2.位運算
參與運算的量按二進制進行運算
按位與&, 按位或|, 按位非~, 按位異或^(脫字符), 左移<<, 右移>>
<<左移一位相當於乘2, >>右移一位相當於除以2
一個字節(Byte)表示8個二進制位(bit)
一個字節所能表示的數的範圍是0~255
按位與作用之一就是對特定位數據進行清0
異或:整形變量相異或(對應爲相同則爲0不同則爲1)
用異或可以交換兩個變量的值
移位中的左移末尾補0
邏輯移位:不考慮正負號
算術移位:考慮正負號。
右移運算對於負數,分爲邏輯右移(高位補0),算數右移(高位補1)
1. int a=5;// 4個字節,32個二進制位
原碼/補碼:
0000 0000 0000 0000 0000 0000 0000 0101