我們都知道c語言有很多資料型別,如char ,int ,double 等等,本篇部落格我們來梳理分類一下這些資料型別,首先我們可以將資料型別分為兩類,整型和浮點型(也就是實型)兩大類,有些讀者可能就會疑惑了,char不是字元型別嗎?怎麼沒列出來呢,別著急先繼續往下閱讀,下面會給出解釋。
整型包含:
char — 大小為1個位元組
[signed] char
unsigned char
short — 大小為2個位元組
[signed] short [int]
unsigned short [int]
int — 大小為4個位元組
[signed] int
unsigned int
long —比較特殊大小為4/8個位元組具體大小和編譯器有關
[signed] long
unsigned long [int]
long long — 大小為8個位元組
那麼整型資料的儲存形式到底是什麼樣的呢?答案是以二進位制的補碼形式儲存的,二進位制想必大家都知道,那麼補碼又是什麼呢?那麼又為什麼會出現補碼這個概念呢?
計算機以補碼形式儲存資料,並規定正整數的原、反、補三者相同,而負整數原、反、補三者的關係是原碼除符號位的所有位取反為反碼,反碼加1為補碼。取反就是二進位制中的0變1,1變0,簡單的舉個例子10和-10的二進位制表示,以int為例:
00000000000000000000000000001010 — 原碼(10)
00000000000000000000000000001010 — 反碼
00000000000000000000000000001010 — 補碼
10000000000000000000000000001010 — 原碼(-10)
11111111111111111111111111110101 — 反碼
11111111111111111111111111110110 — 補碼
浮點型包括
float — 單精度 大小為4個位元組
double — 雙精度 大小為8個位元組
long double — 長雙精度浮點型 大小為8個位元組
那麼浮點型和整型的儲存形式的區別是什麼呢?浮點型中可沒有反碼補碼的概念
根據國際標準ieee(電氣和電子工程協會) 754,任意乙個二進位制浮點數v可以表示成下面的形式:
v=(-1)^s * m * 2^e
(-1)^s表示符號,當s=0,v為正數;當s=1,v為負數。
m表示有效數字,大於等於1,小於2。
2^e表示指數字。
C語言資料儲存 浮點型
浮點數的儲存 ieee 745 乙個例項 關於e的一些注意點 1 float 3.4e 38 3.4e38 2 double 1.7e 308 1.7e308 3 long double 3.4e 4932 1.1e4932 我們以9.5為例,首先將乙個浮點型資料轉化為2進製形式,同時分為整數部分和...
c語言整型與浮點型資料訪問的範圍
整型資料 1.long int 的由來 在win32及現在現在系統中,長度為4 在歷史上,或者其他某些系統中,int長度為2,是short int。所以 short int long 測試型別資料的位元組數函式 sizeof 型別名稱 printf d sizeof int 這裡列舉在win64下的...
C語言基礎 整型 字元型和浮點型
1.整型資料型別 c定義了5種整型資料型別。整型資料型別表 序號型別名稱 說明位元組數 取值範圍 1signed char 有符號的單位元組整數型別 1 128 127 2short int 短整型2 32768 32767 3int整型4 2147438648 2147438647 4long i...