1.相關概念
變量與常量的定義
常量:在程序運行中其值不能改變的量。
變量:在程序運行中其值可以改變的量。
存儲器的區分? ? ? ?
RAM | ROM | |
中文名 | 易失存儲器 | 不易失存儲器 |
特點 | 掉電丟失數據,但存取快 | 掉電不丟失數據,但存取幔 |
標識符
標識符只能由數字、字母和下劃線組成,需要區分字母大小寫且開頭不能由數字組成。
進制之間的轉換
?
1位8進制數對應3位2進制數,1位16進制數對應4位2進制數。
8/16進制數 | 2進制表示(8j進制數) | 2進制表示(16進制數) |
0 | 000 | 0000 |
1 | 001 | 0001 |
2 | 010 | 0010 |
3 | 011 | 0011 |
4 | 100 | 0100 |
5 | 101 | 0101 |
6 | 110 | 0110 |
7 | 111 | 0111 |
8 | / | 1000 |
9 | / | 1001 |
A | / | 1010 |
B | / | 1011 |
C | / | 1100 |
D | / | 1101 |
E | / | 1110 |
F | / | 1111 |
2.常用基本數據類型
整型數據
無符號 | 數據范圍 | 有符號(可以存儲負數) | 數據范圍 | 占用空間(字節) | |
短整型 | unsigned short | 0~(2^16)-1 | short | -2^15~(2^15)-1 | 2 |
整型 | unsigned int | 0~(2^32)-1 | int | -2^31~(2^31)-1 | 4 |
長整型 | unsigned long | 0~(2^64)-1 | long | -2^63~(2^63)-1 | 8 |
超長整形 | unsigned long long | 0~(2^64)-1 | long long | -2^63~(2^63)-1 | 8 |
以整型(int)為例
.任何整型變量在存儲時都是以16進制的形式存儲。
.一般情況下,整型數據都是以小段存儲的形式儲存,即存儲時小位的值置于前面的位置,因此查? ? ?看時需將數據顛倒。
.int 存儲時占用4個字節,32個比特位,其中第一個比特位用于存儲該整型數據的符號,即1為負數,0位正數。
eg1: int 123
十進制數 | 2進制表示(除以2取余) | 16進制表示(4位2進制表示一位16進制) |
123 | 00000000000000000000000001111011 | 0x0000007B |
存儲形式
7B |
00 |
00 |
00 |
eg2:? ?int -123
二進制表示(源碼),該整型的絕對值用二進制表示
00000000000000000000000001111011
反碼,即將源碼的0變為1,1變為0
11111111111111111111111110000100
補碼,即反碼-1
11111111111111111111111110000011
將補碼轉化為16進制數,再以eg1形式存儲
整型溢出:
#include <stdio.h>int main(void)
{int i;int j;i = FFFFFFFF;j = i + 1;printf("%d\n%d\n",i,j);return 0;
}
輸出結果
浮點型
floa(單精度浮點型) | double(雙精度浮點型) | |
占用空間(字節) | 4 | 8 |
以floa 為例
存儲形式:
符號位(占用1比特位):是1為負數,是0為正數。
階碼位(占用8比特位):127+小數點移動的位數。
尾數位(占用23比特位):只存取用科學計數法表示的2進制數的小數部分。
eg3: -100.125
整數部分:100------1100100
小數部分(乘2取整數部分):0.125------001
科學計數法表示:1100100.001------1.100100001*2^6
小數點移動6位,則階碼位為:127+6------10000101
-100.125補碼為:1100001010010000100000000000000
轉化為16進制為:C2C84000
字符型
定義:
????????簡單來看,字符類型在計算機內部和整數存儲方式相同,標準ASCII碼使用8位作為一個字符的存儲單元。在程序設計中字符的常量使用單引號表示,盡量避免使用整型數據表示字符常量。對于ASCI碼表中的非打印字符,可以使用其ASCII值或者轉義序列來表示,通常使用反斜杠“\”來表示字符的轉義。對于打印字符,采用%c與%d將會輸出不同類型的數據。
區分:
eg4:? '1'-----字符(占用1個字節)
? ? ? ? 1------整型(占用4個字節)
? ? ? ? “1”------字符串(占用8個字節)