C語言在32和64位系統基本資料型別取值範圍

2021-10-25 11:46:47 字數 1795 閱讀 9151

資料型別

說明32位系統

64位系統

取值範圍

位元組數位元組數

取值範圍

bool

布林型

true,false11

true,false

char

字元型-128~12711

-128~127

unsigned char

無符號字元型

0~25511

0~255

short

短整型-32768~3276722

-32768~32767

unsigned short

無符號短整型

0~6553522

0~65535

int整型

-2147483648~214748364744

-2147483648~2147483647

unsigned int

無符號整型

0~429496729544

0~4294967295

long

長整型-2147483648~214748364748

-2^64~2^64-1

unsigned long

無符號長整型

0~429496729548

0~2^64-1

long long

長整型-2^64~2^64-188

-2^64~2^64-1

float

單精度浮點數

-2^128~2^128,精度為6~7位有效數字44

-2^128~2^128,精度為6~7位有效數字

double

雙精度浮點數

-2^1024~2^1024,精度為15~16位88

-2^1024~2^1024,精度為15~16位*指標

-48-

幾點說明:

1、未知系統下的資料所佔位元組數

如果不知道自己系統是32位還是64位,可以使用sizeof單目運算子,獲取某個資料型別所占用空間的位元組數,例如sizeof(int),sizeof(short),sizeof(double)。

2、指標型別變數位元組數

指標型別變數的大小只取決於計算機系統的位數,它的大小也等於該計算機系統的int型別大小,即該計算機系統「字」的大小。(這句話中的int其實是上面**中的long int,因為c語言為了保持跨平台的統一,所以char, short int, int, long long int都採用了固定位數,不隨系統位數變化而變化,但是long int型別是根據系統位數決定的!)

3、整數的字尾表示

可以用字尾「l」或「l」來表示長整型數。例如:

十進位製長整型數:158l (十進位制為158)、358000l (十進位制為358000);

八進位製長整型數:012l (十進位制為10)、077l (十進位制為63)、0200000l (十進位制為65536);

十六進製製長整型數:0x15l (十進位制為21)、0xa5l (十進位制為165)、0x10000l (十進位制為65536)。

長整型數158l和基本整型數158 在數值上並無區別。但對158l,因為是長整型數,c編譯系統將為它分配4個位元組儲存空間。而對158,因為是基本整型,只分配2 個位元組的儲存空間。因此在運算和輸出格式上要予以注意,避免出錯。

無符號數也可用字尾表示,整型數的無符號數的字尾為「u」或「u」。 例如:358u、0x38au、235lu均為無符號數。

字首,字尾可同時使用以表示各種型別的數。如0xa5lu表示十六進製制無符號長整型數a5,其十進位制為165。

C 32位系統與64位系統基本資料型別

說明32位位元組數 64位位元組數 取值範圍 bool 布林型1 1true,false char 字元型1 1 128 127 unsigned char 無符號字元型11 0 255 short 短整型2 2 32768 32767 unsigned short 無符號短整型22 0 65535...

32位系統和64位系統

前言 眾所周知,我們通常說作業系統是32位還是64位說的其實是32位處理器 cpu 還是64位處理器 cpu windows系統有32位和64位之分,下面我們來總結一下32位系統和64位系統的原理 區別以及如何判斷。我們現在所稱的計算機系統是32位或64位主要依據的是cpu解析的字組大小 字組大小 ...

c語言基本資料型別大小(32位 64位作業系統)

資料型別 32位64位 bool11 char11 unsigned char11 short int22 int44指標 48unsigned int44 float44 long48 unsigned long48 double88 long long88 歸納總結 除了指標和long隨作業系統...