iOS學習(C語言)知識點整理筆記
1、C語言32個關鍵字
一、存儲相關
1)auto 聲明自動變量
2)register 聲明寄存器變量
3)volatile 聲明的變量在程序執行過程中可能被隱含的改變
4)const 聲明只讀變量
5)extern 聲明變量是在其他文件中聲明
6)static 聲明靜態變量
7)signed 聲明有符號類型變量或函數
8)unsigned 聲明無符號類型的變量或函數
二、數據類型
1)short 聲明短整型變量或函數
2)int 聲明整型變量或函數
3)long 聲明長整型變量或函數
4)float 聲明浮點型變量或函數
5)double 聲明雙精度變量或函數
6)char 聲明字符型變量或函數
7)struct 聲明結構體變量或函數
8) union 聲明公用數據類型
9) enum 聲明枚舉類型
10)void 聲明函數無返回值或無參數 聲明無類型指針
三、邏輯控制
1)if 條件判斷語句
2)else 條件語句否定分支(與 if 連用)
3)for 循環語句的一種
4)do 循環語句的循環體
5)while 循環語句的條件判斷部分
6)break 結束循環 或者關閉switch語句中的其他分支
7)continue 結束當前循環 開始下一輪循環
8)return 子程序返回語句 (可以帶參數,也可不帶參數) 循環條件
9)default 開關語句中的其他條件分支
10)switch 開關語句
11)case 開關語句分支
12)goto 無條件跳轉語句
四、特殊用途
1)sizeof 計算數據類型長度
2)typedef 用于給數據類型取別名
2、進制
1)二進制 2個基本狀態(0和1) 逢二進一 權值 2^(n-1) 標示符 0b (如:0b1111=15)
2)八進制 8個基本狀態(0~7)逢八進一 權值 8^(n-1) 標示符 0(如:0100=64)
3)十進制 10個基本狀態(0~9)逢十進一 權值 10^(n-1)
4)十六進制 16個基本狀態 (0~9,a~f) 逢十六進一 16^(n-1) 標示符 0x(如:0x111=273)
5)二進制轉八進制 每3bits壓縮 八進制轉二進制 一位拉伸成3bits (如:0126=0b001,010,110=64+16+4+2=86)
6)二進制轉十六進制 每4bits壓縮 十六進制轉二進制一位拉伸成4bits (如:0x56=0b0101,0110=64+16+4+2=86)
7)八進制和十六進制是二進制的輔助進制 進制轉化的順序
10->(除16取余)16->(4bits拉伸)2->(3bits壓縮)8
8->(3bits拉伸)2->(4bits壓縮)16->(權值相加)10
8)0~15的二進制數
1=0001
2=0010
3=0011
4=0100
5=0101
6=0110
7=0111
8=1000
9=1001
10=1010
11=1011
12=1100
13=1101
14=1110
15=1111
3、三碼
1)三碼分為 原碼、反碼、補碼
2)原碼 有符號數,最高位為符號位,后面是數據位 負數的符號位是1 正數的符號位是0
假定用8bits來表示一個有符號數 則第一位數位符號數 后七位為數值 例如:(9+(-6))
9的原碼:0000,1001
-6的原碼: 1000, 0110
_________________________________________________________________________________
1000,1111(原碼相加的結果: -15 結果錯誤[9+負6=3] 即原碼不能參與運算)
3)反碼 正數的反碼等于原碼 (正數:反碼=原碼)負數的反碼為符號位不變 原碼其他位取反
例如:(9+(-6)) 二進制相加 逢二進一
9的原碼:0000,1001 反碼:0000,1001
-6的原碼:1000,0110 反碼:1111,1001
______________________________________________________________________________________
0000,0010(反碼相加的結果: 2 結果錯誤[9+負6=3] 即反碼不能參與運算)
4)補碼 正數的補碼等于原碼(正數 補碼=原碼) 負數的補碼等于反碼加一(負數 補碼=反碼+1)
例如:(9+(-6)) 二進制相加 逢二進一
9的原碼:0000,1001 反碼:0000,1001 補碼:0000,1001
-6的原碼:1000,0110 反碼:1111,1001 補碼:1111,1010
________________________________________________________________________________________
0000,0011(補碼相加的結果為3 結果正確 即補碼可以參與運算)
5)8bits表述一個有符號數 0000,0000~1111,1111 共有256種變化
正數:0000,0000~0111,1111(補碼 0~127)0x7f
負數: 1000,0000~1111,1111(補碼)(-128~-1)
-1=1111,1111(補碼)-1111,1110(反碼)-1000,0001(原碼)
-127=1111,1111(原碼),-1000,0000(反碼), -1000,0001(補碼)
-128=1000,0000(補碼 ,1111,1111(反碼),1000,0000( 原碼)
6)8bits表述一個無符號數:0~255
7)計算機中的存儲
一位二進制=1bit 一個字節1Byte=8bits
1Kb=1024Bytes
1Mb=1024Kb
1Gb=1024Mb
1Tb=1024Gb
200Gb=200*1024*1024*1024Bytes
8)程序員節:每年的第2 ^8天 (0b1111,1111) 即:閏年的9月12日 平年的9月13日
9)帶空格輸入并輸出技巧 char str[]={};scanf("%[^/n]",str);
10) 各數據類型在不同位數系統中所占的字節長度
整型 char short int long long long
64位系統 1字節 2字節 4字節 8字節 8字節 (Mac系統)
32位系統 1字節 2字節 4字節 4字節 8字節 (以前的嵌入式開發環境 arm 、dsp)
16位系統 1字節 2字節 2字節 2字節 4字節 (單片機之類的小硬件)
可通過 sizeof() 函數驗證 例如:sizeof(int)
11) 各種數據類型表示數的范圍
char 1字節,8bits,
有符號數:-128~127, -2^7~2^7-1
無符號數0~255(0~0xff) 0~2^8-1
short 2字節,16bits
有符號數:-32768~32767, -2^15~2^15-1
無符號數:0~65535,0~2^16-1
int 4字節,32bits
有符號數:-2^31~2^31-1
無符號數:0~2^32-1
long 8字節,64bits
有符號數: -2^63~2^63-1
無符號數: 0~2^64-1
long long 8字節,64bits
有符號數: -2^63~2^63-1
無符號數: 0~2^64-1
float 浮點型,4字節
double 雙精度浮點型,8字節
long double 長雙精度浮點型,16字節
12)常用的幾個ASCII 碼對照值
A~Z (65~90) a~z(97~122)
del= 127 @=64 /n=10 /r=13
新聞熱點
疑難解答