一、進制
在計算機編程中配深,整數可以通過十進制携添、二進制、八進制和十六進制來表示
1篓叶、十進制
基數:0烈掠、1、2缸托、3左敌、 4、 5俐镐、 6矫限、 7、 8佩抹、 9
進位:逢10進1
位權:例如:123 = 100 + 20 + 3
2叼风、二進制
基數:0、1
進位:逢2進1
位權:例如:1100 = 8+ 4 + 0 + 0
3棍苹、八進制
基數:0无宿、1、2枢里、3孽鸡、4、5栏豺、6梭灿、7
進位:逢8進1
位權:例如:67 = 48 + 7
4、十六進制
基數:0~ 9冰悠、a(A)~f(F) --- a(A)(10) , b(B)(11), c(C)(12), d(D)(13), e(E)(14), f(F)(15)
進位:逢16進1
位權:例如:ff= 255
程序中怎么表示不同進制的數
寫法 | 說明 | 打印 |
---|---|---|
num = 110 | 直接寫的數字就是10進制 | 直接打印其他進制數會顯示十進制 |
num = 0o110 | 0o+八s進制數 | oct(num),返回八進制字符串 |
num = 0b110 | 0b+二進制數 | bin(num),返回二進制字符串 |
num = 0x110 | 0x+十六 進制數 | hex(num),返回十六進制字符串 |
二堡妒、二進制
計算機存儲的時候只能存儲數字數據,而且存的是數字的補碼溉卓。計算機對數據進行運算的時候是使用補碼進行運算的皮迟,將數據從計算機中讀出來看到的是原碼搬泥。
1.原碼
符號位+真值
說明:
符號位:最高位是0表示正數,是1表示復數
真值:去掉正負伏尼,數字對應的二進制
100的原碼:01100100
-100的原碼:11100100
2.反碼
正數的反碼:就是原碼
負數的反碼:原碼的符號位不變忿檩,其余的位數取反。
100的反碼:01100100
-100的反碼:10011011
3.補碼
正數的補碼:還是原碼
負數的補碼:反碼+1
100的補碼:01100100
-100的補碼:10011100
為什么要存補碼:
因為計算機中只有加法器爆阶,沒有減法器燥透。如果計算機兩個數相減,計算機內部是加上一個負數辨图。
三班套、位運算
符號 | 說明 | 如果a=0b1010,b=0b1100 |
---|---|---|
& | 按位與運算 | a & b,結果為0b1000 |
| | 按位或運算 | a | b故河,結果為0b1110 |
~ | 按位取反 | ~b吱韭,結果為-0b1101 |
^ | 按位異或 | a ^ b,結果為0b110 |
<< | 左移 | a<<1鱼的,結果為0b10100 |
>> | 右移 | a>>1理盆,結果為0b101 |
與運算:一個位上的數如果和1與,可以保留這個位上的數凑阶;和0與可以置0猿规。
應用:判斷一個是逇奇偶性。
num % 2 == 0 # num是偶數
# 如果是偶數這個數的二進制的最低位為0宙橱,為1是奇數
num & 1 == 0 # num是偶數
num & 1 == 1 # num是奇數
左移N為相當于數字*2的N次方
右移N位相當于數字//2的N次方
應用:快速乘2姨俩,整除2操作。