IOS學習---C語言基礎學習5

進制:
程序中輸入的數字默認均爲10進制
int number = 100; 十進制
int number2 = 0b1100  二進制
int number3 = 014  八進制
int number4 = oxc  十六進制

printf("%d",number)//(%d以10進制的方式輸出此數)

%d 十進制  %o 八進制 %x十六進制
%c 字符   %p 輸出地址 %u十進制無符號輸出

數據在內存中存放(二進制)
方式:數據的高位存放於內存字節地址較大的位置

整型類型:
int 4個字節
short 
long 8個字節 printf("%ld",x)
long long 8個字節 printf("%lld",x)
signed  有符號  正數 0 負數
unsigned 無符號  0 正數(%u)
注意:long只能修飾int

位運算:
與運算(&):
只有對應的兩個二進制位均爲1時,結果才爲1,否則爲0
規律:二進制中,與1相&就保持原位,與0相與就爲0
例子:
用於判斷變量的奇偶性
判斷最後一位是1則爲奇數,最後一位爲0則爲偶數
方法:與1進行與運算 結果爲0則爲偶數,結果爲1則爲奇數

或運算(|):
只要對應的兩個二進制位有一個爲1時,結果就爲1,否則爲0

異或運算(^):
當對應的二進制位相異時,結果爲1,否則爲0
規律:相同整數相^結果爲0,比如5^5=0
      交換 9^5^6 == 9^6^5
      任何數值跟0進行異或,結果還是原來的數值9^0==9
      a^b^a=b
例子:
利用^運算交換兩個變量的值
a=a^b
b=a^b
a=a^b

按位取反(~)
對所有二進制位依次取反(包括符號位)

左移(<<):
把整數a的各二進位全部左移n位,高位丟棄,低位補零,左移n位其實就是乘以2的n次方
由於左移是丟棄最高位,0補最低位,所以符號位也會丟棄,左移出來的結果值可能會改變正負性

右移(>>):
把整數a的各二進位全部右移n位,保持符號位不變,右移n位其實就是除以2的n次方
爲正數時:符號位爲0,最高位補0
爲負數時,符號位爲1,最高位補0或是補1取決於編譯系統的規定(mac下補1)

利用^運算交換兩個變量的值
a=a^b
b=a^b
a=a^b

switch 語句中case中的條件必須不同(在內存中存放的,即使是‘A’與65也當做相同 被認爲是錯誤)



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章