7.C語言數據類型/變量類型

Table of Contents

一.C語言數據類型分類

二.C語言整形

1.無符號整形(16位系統)

2.有符號整形(16位系統)

3.int 和 long區別

4.超出取值範圍的整形

三.C語言浮點型float/double

1.float(單精度)

2.double(雙精度)

猜你喜歡:


一.C語言數據類型分類

C語言的數據類型包括:整型、字符型、實型或浮點型(單精度和雙精度)、枚舉類型、數組類型、結構體類型、共用體類型、指針類型和空類型。

 

int       : 佔據的內度存大小是2 個byte
short int : 佔據的內度存大小是4 個byte
long int  : 佔據的內度存大小是4 個byte
float     : 佔據的內度存大小是4 個byte
double    : 佔據的內度存大小是8 個byte
char      : 佔據的內度存大小是1 個byte

 

二.C語言整形

C語言的整形,分類兩類,一種是有符號的(正數/負數),一種是無符號的(默認是大於等於零);

1.無符號整形(16位系統

unsigned int 取值範圍          :0~65535
unsigned short int 取值範圍    :0~65535
unsigned long int 取值範圍     :0~4294967295

 

無符號整形,默認重0開始,永遠不可能有負數;

 

2.有符號整形(16位系統

int 取值範圍           :-32768~+32767
short int 取值範圍     :-32768~+32767
long int 取值範圍      :-2147483648~+2147483647

 

有符號整形有正負區間(包含大於0和小於0兩個區間),實際上總長度和無符號整形一樣;

 

3.int 和 long區別

早期的操作系統是16位系統

int用二字節表示,範圍是-32768~32767;
long用4字節表示,範圍是-2147483648~2147483647;

後來發展到32位操作系統

int 用4字節表示,與long相同,範圍是-2147483648~2147483647;

目前的操作系統已發展到64位操作系統,但因程序編譯工藝的不同,兩者表現出不同的差別:

32位編譯系統:int佔四字節,與long相同,範圍是-2147483648~2147483647;
64位編譯系統:int佔四字節,long佔8字節,long數據範圍變爲:-2^63 ~ 2^63-1;

 

 

4.超出取值範圍的整形

/************************************************************************/
/*@File Name         : helloworld.cpp                                                       
/*@Created Date      : 2020/4/24 21:17
/*@Author            : 猿說編程 
/*@blog              : www.shuopython.com
/*@Description       : C語言入門教程 - 數據類型/變量類型
/************************************************************************/

#include "stdafx.h"

int main()
{
        
	int i=2147483647; //32位操作系統 int 取值範圍 :-2147483648~+2147483647
	unsigned long int j=4294967295; //unsigned long int 取值範圍 :0~4294967295
	printf("%d %d %u %u\n",i,i+1,j,j+1);
}

輸出結果:

2147483647 -2147483648 4294967295 0
請按任意鍵繼續. . .

由此可見:當int型整數超出自己範圍時,會從它的最小值重新開始!(int 和 long int取值範圍一樣)

 

 

三.C語言浮點型float/double

C語言變量類型除了整形之外,還有浮點數類型,例如:3.5,3.1415927685……

浮點數類型也分爲兩類,一種是 float 單精度 ,一種是 double 雙精度,區別就在於 double 的取值範圍不管是小數部分還是整數部分都比 float 更高;

 

1.float(單精度)

float 整數部分取值範圍:能表達式萬億級別,已經夠大了,實際開發完全夠用;

float 小數部分取值範圍:最多隻能精確到小數點後6位;

2.double(雙精度)

double 整數部分取值範圍:比float更大,腦補就行了….

double 小數部分取值範圍:最多隻能精確到小數點後15位;

 

舉個例子:

/************************************************************************/
/*@File Name         : float_double.cpp                                                       
/*@Created Date      : 2020/4/25 11:40
/*@Author            : 猿說編程 
/*@blog              : www.shuopython.com
/*@Description       : C語言入門教程 - float和double區別
/************************************************************************/

#include "stdafx.h"

int main()
{
	float num1 = 3.1415926535;
	double num2 = 3.1415926535;
	printf("float  num1 = %.10f \n",num1); 
	printf("double num2 = %.10f \n", num2);
}

輸出結果:

float  num1 = 3.1415927410
double num2 = 3.1415926535
請按任意鍵繼續. . .

由上面可以看出,float 類型的小數點最多隻能精確到第6位,第7位開始就已經不準確了,而 double 類型可以精確到15位,一般項目中使用 float 類型已經完全足夠了;

 

猜你喜歡:

1.安裝 Visual Studio 2015

2.安裝 Visual Studio 插件 Visual Assist

3.設置 Visual Studio字體/背景/行號

4.徹底卸載 Visual Studio 2008

5.徹底卸載 Visual Studio 2013/2015

 

轉載請註明猿說編程 » C語言教程 » C語言數據類型/變量類型



                                                                  技術交流、商務合作請直接聯繫博主

                                                                                 掃碼或搜索:猿說編程

python/C++教程

                                                                                             猿說編程

                                                                                   微信公衆號 掃一掃關注

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章