一 進制spa
1. 什麼是進制code
是一種計數的方式 數值的表示形式內存
2. 二進制編譯
1> 特色: 只有0和1 逢2進1class
2> 書寫格式: 0b或者0B開頭二進制
3> %d 以帶符號的十進制形式輸出整數的格式符, %u 以不帶符號的十進制形式輸出整數的格式符數據
3. 八進制co
1> 特色: 0~7 逢八進一字符
2> 書寫格式: 0開頭位運算
3> %o 以不帶符號的八進制形式輸出整數的格式符
4. 十六進制
1> 特色: 0~F 逢十六進一
2> 書寫格式: 0x或者0X開頭
3> %x 以不帶符號的十六進制形式輸出整數的格式符
二 類型說明符
1. short和long
1> short和long能夠提供不一樣長度的整型數 也就是能夠改變整型數的取值範圍
2> 能夠連續使用2個long 也就是long long, 通常來講 long long的範圍是不小於long的
3> 還有一點要明確的是: short int等價於short, long int等價於long, long long int等價於long long
2. signed和unsigned
1> 首先要明確的: signed int等價於signed, unsigned int等價於unsigned
2> signed和unsigned的區別就是它們的最高位是否要當作符號位 並不會像short和long那樣改變數據的長度 即所佔的字節數
signed: 表示有符號 也就是說最高位要當作符號位 因此包括正數, 負數和0 其實int的最高位原本就是符號位 已經包括了正負數和0了 所以signed和int是同樣的 signed等價於signed int, 也等價於int
unsigned: 表示無符號 也就是說最高位並不當作符號位 因此不包括負數
三 位運算
1. 按位與 &
1> 功能: 只有對應的兩個二進位均爲1時 結果位才爲1 不然爲0
2> 舉例: 好比9&5 其實就是1001&101=1 所以9&5=1
3> 規律: 二進制中 與1相&就保持原位 與0相&就爲0
2. 按位或 |
1> 功能: 只要對應的二個二進位有一個爲1時 結果位就爲1 不然爲0
2> 舉例: 好比9|5 其實就是1001|101=1101 所以9|5=13
3. 按位異或 ^
1> 功能: 當對應的二進位相異(不相同)時 結果爲1 不然爲0
2> 舉例: 好比9^5 其實就是1001^101=1100 所以9^5=12
3> 規律: 相同整數相^的結果是0 好比5^5=0 多個整數相^的結果跟順序無關 好比5^6^7=5^7^6 所以得出結論: a^b^a = b
4. 按位取反 ~
對整數a的各二進位進行取反 符號位也取反(0變1 1變0)
5. 左移 <<
把整數a的各二進位所有左移n位 高位丟棄 低位補0 左移n位其實就是乘以2的n次方
因爲左移是丟棄最高位 0補最低位 因此符號位也會被丟棄 左移出來的結果值可能會改變正負性
6. 右移 >>
把整數a的各二進位所有右移n位 保持符號位不變 右移n位其實就是除以2的n次方
爲正數時 符號位爲0 最高位補0
爲負數時 符號位爲1 最高位是補0或是補1 取決於編譯系統的規定
四 char類型
1. 存儲細節
字符在內存中存儲的東西就是該字符所對應的ASCII碼值
ASCII單字節表(雙字節GBK\GB2312\GB18030\Unicode)
2. 注意: 單引號'' 只能擴住單字節的字符
3. 當作整型使用
在-128~127範圍內 能夠當作整數來用