C語言整型,浮點型資料儲存的超詳細講解

2021-10-21 07:40:28 字數 1504 閱讀 4440

我們都知道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...