c++定義了一套包括算數型別(arithmetic type)和空型別(void)在內的基本資料型別。
算數型別分為兩類:
整型(integral type,包括字元和布林型別在內)
浮點型
算數型別的尺寸(也就是該型別資料所佔的位元數)在不同的機器上有所差別。如下表展示了c++標準規定的尺寸的最小值,同時允許編譯器賦予這些型別更大的尺寸。某一型別所佔的位元數不同,它所能表示的資料範圍也不一樣。
算數型別型別
含義最小尺寸
bool
布林型別
未定義char
字元8位
wchar_t
寬字元16位
char16_t
unicode 字元
16位char32_t
unicode 字元
32位short
短整型16位
int基本整型
16位long
長整型32位
long long
長整型64位
float
單精度浮點數
6位有效數字
double
雙精度浮點數
10位有效數字
long double
擴充套件精度浮點數
10位有效數字
布林型別
取值為真(true)和假(false)
注:除字元和布林型別之外,其他整型用於表示(可能)不同尺寸的整數。c++語言規定乙個int至少和乙個short一樣大,乙個long至少和乙個int一樣大,乙個long long至少和乙個long一樣大。內建型別的機器實現其中,long long是在c++11中新定義的。
計算機以位元序列儲存資料,每個位元非0即1。
大多數計算機以2的整數次冪個位元來作為快來處理記憶體,可定址的最小記憶體塊稱為(位元組),儲存的基本單元稱為字(word)它通常是由幾個位元組組成。在c++語言中,乙個位元組要至少能容納機器基本字符集中的字元。大多數機器的位元組由8位元構成,字則由32或64位元構成,也就是4或8位元組。
736424
00111011
736425
00011011
左側是位元組的位址,右側是位元組中8位元的具體內容。
帶符號型別和無符號型別
除去布林型和擴充套件的字元型之外,其他整型可以劃分為帶符號的(signed)和無符號的(unsigned)兩種。
帶符號型別可以表示正數,負數,或0,無符號型別僅能表示大於等於0的值。
型別int,long,short,long long 都是帶符號的,通常在這些型別名前新增unsigned就可以得到無符號型別。
與其他整型不同,字元型被分為了三種:char、signed char 和 unsigned char。
特別需要注意的是:型別char和型別signed char並不一樣。儘管字元型有三種,但是字元的表現形式卻只需要兩種:帶符號和無符號的。型別char實際上會表現為上述兩種形式中的一種,具體是哪種由編譯器決定。無符號型別中所有位元都用來儲存值,例如,8位元的unsigned char可以表示0至255區間內的值。c++標準並沒有規定帶符號型別如何表示,但是約定了在表示範圍內正值和負值的量應該平衡。因此8位元的signed char理論上應該可以表示-127至127區間內的值,大多數現代計算機將實際的表示範圍定為-128至127。
和c語言一樣,c++的設計準則之一也是盡可能地接近硬體。c++地資料型別必須滿足各種硬體特質,所以它們常常顯得繁雜而令人不知所措。事實上,大多數程式設計師能夠(也應該)對資料型別地使用做出限定從而簡化選擇地過程。以下是選擇型別的一些經驗準則:
而今,重走C 路 開始
源程式檔案命名約定 程式檔案通常被稱為原始檔 source file 不同編譯器使用不同的字尾命名c 程式,最常見的包括 cc cxx cpp cp和.c。使用命令執行編譯器 cc prog1.cc cc是編譯器的名字,是系統提示符。編譯器生成乙個可執行檔案。windows系統會將這個可執行檔案命名...
FPGA入門到精通系列1 數位電路基礎知識
本文主要介紹數位電路基礎知識,用最簡潔的內容介紹最核心的知識。1 數位電路是什麼?數位電路是利用電源電壓的高電平和低電平分別表示1和0,進而實現資訊的表達。模擬訊號 隨時間連續變化的訊號。處理模擬訊號的電路就是模擬電路。數碼訊號 隨時間不連續變化的訊號,離散變化。處理數碼訊號的電路就是數位電路。2 ...
c 學習之路 基礎知識的重構與高階(一)
2.函式 3.操作符過載 c 學習之路 封裝性 繼承 多型性 c 學習之路 stl初探 以思維導圖形式 c 學習之路 基礎知識的重構與高階 二 c 學習之路 基礎知識的重構與高階 三 標頭檔案的基本結構 complex.h ifndef complex define complex 0.前置宣告 c...