C語言基礎篇-數據類型(二)關鍵字
阿新 • • 發佈:2018-10-29
至少 硬件 邏輯結構 內存空間 結構 根據 什麽 操作 自定義
在硬件描述中 一個char _ _ _ _ _ _ _ _ 8bit 的內存 空間
如果我這樣寫:
char a = 0x1a;
轉換成2進制就是 0001 1010 這樣就是對這8個空間為進行賦值.
-- int 編譯器能處理的最優處理單位. 32位系統 一個周期能走滿 32bit == 4B 就是int 的大小. 16位系統 一個周期能讀取 16bit == 2B 就是 shot (int) 的大小. 64位系統 一個周期能讀取 64bit == 8B 就是int 的大小. #所以, int的大小不是固定的,是根據操作系統和編譯器所決定 .
什麽時候用int? 什麽時候用char?
如果用來 描述 數據, 就用int. a.容量大; b.能達到系統的最優處理大小.
如果用來 描述 硬件, 一般使用char.
-- long 至少4B 大小的數據長度.
long的長度最少是4byte.什麽意思呢?意義體現在16位的操作系統中. 在16位的系統中,int的大小只有2byte,
2b == 65353 種狀態.如果超過了,就要使用 bouble 或者 long .因為long至少保證 4byte的大小.
-- unsigned 和 signed 區別 最高字節 是 符號位 還是 普通的數據
unsigned 無符號 一般用來采集數據
signed 有符號 就是用來定義用於計算的數值
二者在位移運算中體現差異.因為有符號數的第一位是符號位正0 負1. char a = -1 (0xff) a 在不斷左移的過程中, 並不會變成0, 因為 符號位 一直在占位. unsigned char b = 0xff b 在不斷右移過後,會變成 0x00.
-- float 和 double 浮點運算 浮點數 在 內存中的表現形式 跟 整數 是完全不一樣的 . float 4byte double 8byte 非常浪費內存空間,但是精確.
-- void 這是最神奇的一種數據類型. 因為它可以轉換成 任何數據類型,它更多的意義是 聲明 標誌,而不是 使用 標誌 . void a; a = (int)b; 2.未完待續...
導航:
1. 數據類型
2. 自定義類型
3. 邏輯結構
4. 類型修飾符
5. 雜項
----->x<------------->x<--------------->x<--------------->x<------------->x<----- 1 數據類型 (限制 占用內存大小 的 關鍵字) -- char 硬件最小單位:bit; 軟件最小單位 char; [ char(B)=8 bit ] char [1 byte]= 8bit = 256 種狀態. 進制: 十進制 八進制 十六進制 二進制-- int 編譯器能處理的最優處理單位. 32位系統 一個周期能走滿 32bit == 4B 就是int 的大小. 16位系統 一個周期能讀取 16bit == 2B 就是 shot (int) 的大小. 64位系統 一個周期能讀取 64bit == 8B 就是int 的大小. #所以, int的大小不是固定的,是根據操作系統和編譯器所決定 .
-- unsigned 和 signed 區別 最高字節 是 符號位 還是 普通的數據
二者在位移運算中體現差異.因為有符號數的第一位是符號位正0 負1. char a = -1 (0xff) a 在不斷左移的過程中, 並不會變成0, 因為 符號位 一直在占位. unsigned char b = 0xff b 在不斷右移過後,會變成 0x00.
-- float 和 double 浮點運算 浮點數 在 內存中的表現形式 跟 整數 是完全不一樣的 . float 4byte double 8byte 非常浪費內存空間,但是精確.
-- void 這是最神奇的一種數據類型. 因為它可以轉換成 任何數據類型,它更多的意義是 聲明 標誌,而不是 使用 標誌 . void a; a = (int)b; 2.未完待續...
C語言基礎篇-數據類型(二)關鍵字