C++基礎資料型別 (Elementary Data Type)解惑

來源:互聯網
上載者:User

標籤:

  記得剛學C語言的時候,對那些double,float,long,unsigned int各種混亂,基本是隨便用,對資料類型沒有一個整體的架構.最近學習<<C++ primer plus>>一書,清晰了許多.於此以讀書筆記的形式記錄關於C++基礎資料型別 (Elementary Data Type)的知識.

  高度概括,C++資料類型只有兩種,整型與浮點型.

  一,整數:

    就是沒有小數部分的數字(除bool外按寬度遞增排序).它包括:

  • char
  • short
  • int
  • long
  • long long
  • bool

  其中除bool外每種類型都有符號版本與無符號版本.共11種.

    兩種較為特殊的情況

  • char最常用來處理字元,但由於所有的字元都有其數值編碼(例如ASCII字元集),所以char可以看做比short更小的整型.
  • bool:字面值true可轉化為1,false可轉換為0.另外任何數值在字都可以轉換為bool值 非零數值為true,0為false.

  

  unsigned與signed:

  當數值不會為負時,比如生命值,人口數量等,可以使用無符號類型,可以增大變數的最大儲存值.

  例如:short表示的範圍為-32768到+32767 則unsigned版本為0-65535

 

  整型如此之多,那麼,如何選擇整數類型:

  • 如果沒有足夠的理由來用其他類型,則用int.因為int通常被設定為對電腦而言最為自然的長度,即處理效率最高的長度.
  • 如果變數表示的值不可能為負數,則可以使用無符號類型,這樣可以表達更大的值.
  • 如果知道變數表示的值大於16位整數的最大可能值,,則使用long(即使有的系統int為32位,確保程式的可移植性)
  • 如果儲存的值超過20億,則使用long long
  • 如果short比int小,則可以使用short以節省記憶體.(C++中short至少16位,int至少與short一樣長).
  • 如果節省記憶體很重要,則用short

二,浮點數:

能夠表示帶小數部分的數字

浮點的意思:

  諸如2.5,3.15159之類的數字,電腦將其分為兩部分進行儲存.一部分表示值,另一部分用於對數值進行縮放.

  例如:34.125與3412.5它們除了小數點位置不同之外,數字都相同.可以把第一個數字看成0.34125(基準值)放大100倍,第二個數看成0.34125放大10000倍.縮放因子的作用是移動小數點的位置,浮點因此得名.

C++中浮點類型有以下3種:

  • float 
  • double
  • long double 

 這三種有效位元可以一樣多,通常,float為32位,double為64位,long double為80,96或者128位.

如何選擇浮點數類型:

  • 精度要求高的時候用double.double精度高,有效數字16位,float精度6位或7位
  • 能用單精確度時不要用雙精確度,以省記憶體.(double消耗記憶體是float的兩倍,double的運算速度比float慢得多)
  • 補充一點:

    在在代碼中對浮點數據類型直接使用== 、<= 、>=、 !=等運算子進行比較都是不正確的。正確的方法應該是 將其差或和於小數進行比較  

    通常與10^6 比如浮點數與零的比較:

    等於0關係:  fabs(i)<=1e-6

    大於0關係:  i>1e-6

    小於0關係:  i<1e-6

 

 

  

 

C++基礎資料型別 (Elementary Data Type)解惑

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.