C 语言基础语法1
C語言基本語法:
/* ********************************************
數(shù)據(jù)類型
說明數(shù)據(jù)大小
char ? ? ? 1
short ? ? 2
int ? ? ? ?4
float ? ? ?4
double ? ? 8
存儲類型
存放在內(nèi)存中的位置
(堆、棧(auto)、靜態(tài)區(qū)域、代碼段)
功能
代碼的操作(干什么)
+ - * / % & || ?是運(yùn)算符
控制語句
選擇或循環(huán)
**********************************************/
變量:
標(biāo)識符?
1. 數(shù)字、字母、下劃線
2. 首字母不可以為數(shù)字,且區(qū)分大小寫
3. 不可與系統(tǒng)關(guān)鍵字相同
存儲基本單位:
位bit
字節(jié)byte ? KB ? ? MB ?GB
數(shù)據(jù)的表示方法:
1.整數(shù):
整型數(shù)據(jù):
十進(jìn)制
八進(jìn)制 ? <只能表示整數(shù)(char short int long)>
十六進(jìn)制 <只能表示整數(shù)(char short int long)>
二進(jìn)制(C語言不支持,但計算機(jī)內(nèi)部只識別二進(jìn)制)
進(jìn)制轉(zhuǎn)換:
十進(jìn)制<==>二進(jìn)制
整數(shù)-->二進(jìn)制 ?輾轉(zhuǎn)相除,除2求余,從下向上讀
小數(shù)-->二進(jìn)制 ? ? ? ? ? 乘2取整,從上向下
二進(jìn)制 ==>八進(jìn)制?
整型數(shù)據(jù)的有符號與無符號:
signed int?
unsigned ?int?
整型的打印:
有符號類型;
printf("%d", a);
無符號類型:
printf("%u", a);
2.字符:
ASCII碼:
原碼:
直接轉(zhuǎn)成二進(jìn)制,最原始的二進(jìn)制表示方法, 但在負(fù)數(shù)運(yùn)算時,結(jié)果出錯.進(jìn)而提出反碼.
反碼:
正數(shù)的反碼和原碼相同,負(fù)數(shù)的反碼是在原碼的基礎(chǔ)上取反(符號位不變). 反碼解決了原碼不能計算的問題,但同時帶來了-0,進(jìn)而提出了補(bǔ)碼
補(bǔ)碼:
整數(shù)的補(bǔ)碼和反碼相同
負(fù)數(shù)的補(bǔ)碼在反碼的基礎(chǔ)上+1。(對原取反+1,符號位除外)
取值范圍:
有符號類型字符 : -128 ~ ?127
無符號類型字符 : 0 ~ 255
PS:
類型的最大值+1 -->變成類型的最小值
類型的最小值-1 -->變成類型的最大值
3.實型/浮點(diǎn)型:
單精度 float?
1位符號位 +8位指數(shù)位+23小數(shù)位 (偏移碼+127)
將一個浮點(diǎn)型數(shù)據(jù)存放進(jìn)內(nèi)存:
1.將浮點(diǎn)型數(shù)據(jù)轉(zhuǎn)換成二進(jìn)制指數(shù)形式,獲取符號位 指數(shù) 數(shù)據(jù)大小
2.float內(nèi)存最高位存放符號位,緊接著8位存放指數(shù)+127的二進(jìn)制,低23位存放數(shù)據(jù)的小數(shù)位,沒錯,數(shù)據(jù)的整數(shù)位直接丟棄(因為二進(jìn)制數(shù)據(jù)的整數(shù)位一定是1,所以可以省略,還原時加上就行)
演示: ? ? ? ??
6.9 存進(jìn)內(nèi)存
測試:將 17.625存進(jìn)內(nèi)存
雙精度 double?
1位符號位 + 11位指數(shù)位 + 52小數(shù)位 (偏移碼+1023)
精度范圍 ?能保證小數(shù)點(diǎn)后15位
判斷一個float型變量x是否為0:
#define ?EP ? 0.000001
if ( (x<=EP)&&(x>=-EP) )
{
}
/* ********************************************
數(shù)據(jù)類型
說明數(shù)據(jù)大小
char ? ? ? 1
short ? ? 2
int ? ? ? ?4
float ? ? ?4
double ? ? 8
存儲類型
存放在內(nèi)存中的位置
(堆、棧(auto)、靜態(tài)區(qū)域、代碼段)
功能
代碼的操作(干什么)
+ - * / % & || ?是運(yùn)算符
控制語句
選擇或循環(huán)
**********************************************/
變量:
標(biāo)識符?
1. 數(shù)字、字母、下劃線
2. 首字母不可以為數(shù)字,且區(qū)分大小寫
3. 不可與系統(tǒng)關(guān)鍵字相同
存儲基本單位:
位bit
字節(jié)byte ? KB ? ? MB ?GB
數(shù)據(jù)的表示方法:
1.整數(shù):
整型數(shù)據(jù):
十進(jìn)制
八進(jìn)制 ? <只能表示整數(shù)(char short int long)>
十六進(jìn)制 <只能表示整數(shù)(char short int long)>
二進(jìn)制(C語言不支持,但計算機(jī)內(nèi)部只識別二進(jìn)制)
進(jìn)制轉(zhuǎn)換:
十進(jìn)制<==>二進(jìn)制
整數(shù)-->二進(jìn)制 ?輾轉(zhuǎn)相除,除2求余,從下向上讀
小數(shù)-->二進(jìn)制 ? ? ? ? ? 乘2取整,從上向下
二進(jìn)制 ==>八進(jìn)制?
整型數(shù)據(jù)的有符號與無符號:
signed int?
unsigned ?int?
整型的打印:
有符號類型;
printf("%d", a);
無符號類型:
printf("%u", a);
2.字符:
ASCII碼:
原碼:
直接轉(zhuǎn)成二進(jìn)制,最原始的二進(jìn)制表示方法, 但在負(fù)數(shù)運(yùn)算時,結(jié)果出錯.進(jìn)而提出反碼.
反碼:
正數(shù)的反碼和原碼相同,負(fù)數(shù)的反碼是在原碼的基礎(chǔ)上取反(符號位不變). 反碼解決了原碼不能計算的問題,但同時帶來了-0,進(jìn)而提出了補(bǔ)碼
補(bǔ)碼:
整數(shù)的補(bǔ)碼和反碼相同
負(fù)數(shù)的補(bǔ)碼在反碼的基礎(chǔ)上+1。(對原取反+1,符號位除外)
取值范圍:
有符號類型字符 : -128 ~ ?127
無符號類型字符 : 0 ~ 255
PS:
類型的最大值+1 -->變成類型的最小值
類型的最小值-1 -->變成類型的最大值
3.實型/浮點(diǎn)型:
單精度 float?
1位符號位 +8位指數(shù)位+23小數(shù)位 (偏移碼+127)
將一個浮點(diǎn)型數(shù)據(jù)存放進(jìn)內(nèi)存:
1.將浮點(diǎn)型數(shù)據(jù)轉(zhuǎn)換成二進(jìn)制指數(shù)形式,獲取符號位 指數(shù) 數(shù)據(jù)大小
2.float內(nèi)存最高位存放符號位,緊接著8位存放指數(shù)+127的二進(jìn)制,低23位存放數(shù)據(jù)的小數(shù)位,沒錯,數(shù)據(jù)的整數(shù)位直接丟棄(因為二進(jìn)制數(shù)據(jù)的整數(shù)位一定是1,所以可以省略,還原時加上就行)
演示: ? ? ? ??
6.9 存進(jìn)內(nèi)存
測試:將 17.625存進(jìn)內(nèi)存
雙精度 double?
1位符號位 + 11位指數(shù)位 + 52小數(shù)位 (偏移碼+1023)
精度范圍 ?能保證小數(shù)點(diǎn)后15位
判斷一個float型變量x是否為0:
#define ?EP ? 0.000001
if ( (x<=EP)&&(x>=-EP) )
{
}
總結(jié)
- 上一篇: LINUX 基础命令和预处理
- 下一篇: C语言基础语法2