C++基本数据类型解惑
記得剛學C語言的時候,對那些double,float,long,unsigned int各種混亂,基本是隨便用,對數據類型沒有一個整體的框架.最近學習<<C++ primer plus>>一書,清晰了許多.于此以讀書筆記的形式記錄關于C++基本數據類型的知識.
高度概括,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
?
?
?
轉載于:https://www.cnblogs.com/morningsky/p/4449158.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的C++基本数据类型解惑的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 滚筒买8kg还是10kg
- 下一篇: switch暗黑3怎么更新中文