而今,重走C 路 基礎(1)

2021-10-02 01:35:42 字數 1958 閱讀 1306

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實際上會表現為上述兩種形式中的一種,具體是哪種由編譯器決定。

c++標準並沒有規定帶符號型別如何表示,但是約定了在表示範圍內正值和負值的量應該平衡。因此8位元的signed char理論上應該可以表示-127至127區間內的值,大多數現代計算機將實際的表示範圍定為-128至127。

無符號型別中所有位元都用來儲存值,例如,8位元的unsigned char可以表示0至255區間內的值。

和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...