C語言基本語法及原理初始:
C語言基本語法及原理初始:
/* ******************************************* *
數據類型
說明數據大小
char 1
short 2
int 4
float 4
double 8
構造類型
存儲類型
存放在內存中的位置
(堆、棧(auto)、靜態區域、代碼段)
功能
代碼的操作(幹什麽)
+ - * / % & || 是運算符
控制語句
選擇或循環
函數
* ******************************************** */
標識符
變量:
1. 數字、字母、下劃線
2. 首字母不可以為數字,且區分大小寫
3. 不可與系統關鍵字相同
定義變量的格式:
<存儲類型> <數據類型> <變量名>
| | |申請空間的別名
| |說明申請的空間的大小
| char short int
|
說明申請的空間在內存中的位置的。
auto static extern register
棧 靜態 靜態 寄存器
int a = 998; //初始化
int b; 先定義
b = 998; 後賦值
常量:
直接常量:
int a = 5;
float f = 3.14159;
"hello world";
char c = ‘A‘;
符號常量
#define Pi 3.14159
int a = 6;
int const a = 6;
const int a = 6;
//const表示將a常量化,不可以通過對a賦值改變a的空間
存儲基本單位:
位bit
字節byte KB MB GB
數據的表示方法:
1.整數:
整型數據:
十進制
八進制 <只能表示整數(char short int long)>
十六進制 <只能表示整數(char short int long)>
二進制(C語言不支持,但計算機內部只識別二進制)
進制轉換:
十進制<==>二進制
整數-->二進制 輾轉相除,除2求余,從下向上讀
小數-->二進制 乘2取整,從上向下
二進制 ==>八進制
整型數據的有符號與無符號:
signed int x; (有符號類型最高位作為符號0表示正數,1表示負數)
unsigned int y; (最高位同樣作為有效數據位)
整型的打印:
有符號類型;
printf("%d", x);
無符號類型:
printf("%u", y);
2.字符:
ASCII碼:
原碼:
直接轉成二進制,最原始的二進制表示方法, 但在負數運算時,結果出錯.進而提出反碼.
反碼:
正數的反碼和原碼相同,負數的反碼是在原碼的基礎上取反(符號位不變). 反碼解決了原碼不能計算的問題,但同時帶來了-0,進而提出了補碼. (反碼加法采用循環進位的方法)
補碼:
正數的補碼和反碼相同
負數的補碼在反碼的基礎上+1。(對原取反+1,符號位除外)
取值範圍:
有符號類型字符 : -128 ~ 127
無符號類型字符 : 0 ~ 255
PS:
類型的最大值+1 -->變成類型的最小值
類型的最小值-1 -->變成類型的最大值
3.實型/浮點型:
單精度 float
1位符號位 +8位指數位+23小數位 (偏移碼+127)
將一個浮點型數據存放進內存:
1.將浮點型數據轉換成二進制指數形式,獲取符號位 指數 數據大小
2.float內存最高位存放符號位,緊接著8位存放指數+127的二進制,低23位存放數據的小數位,沒錯,數據的整數位直接丟棄(因為二進制數據的整數位一定是1,所以可以省略,還原時加上就行)
演示:
6.9 存進內存
測試:將 17.625存進內存
雙精度 double
1位符號位 + 11位指數位 + 52小數位 (偏移碼+1023)
精度範圍 能保證15位有效數據
判斷一個float型變量x是否為0:
#define EP 0.000001
if ( (x<=EP)&&(x>=-EP) )
{
}
C語言基本語法及原理初始: