程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 關注C++細節——使用內置算術類型

關注C++細節——使用內置算術類型

編輯:C++入門知識

 

C++中整型數有點令人迷惑不解。就像C語言一樣,C++被設計成允許程序在必要的時候直接處理硬件,因此整型被定義成滿足各種各樣硬件的特性。大多數程序員可以(應該)通過限制實際使用的類型來忽略這些復雜性。

        實際上,許多人用整型進行計數。例如:程序經常計算像vector或數組這種數據結構的元素的個數。其實標准庫定義了一組類型用於統計對象的大小。因此,當計數這些元素時使用標准庫定義的類型總是正確的。其他情況下,使用unsigned類型比較明智,可以避免值越界導致結果為負數的可能性。

        當執行整型算術運算時,很少使用short類型。大多數程序中,使用short類型可能會隱含賦值越界的錯誤。這個錯誤會產生什麼後果將取決所使用的機器。比較典型的情況是值“截斷”以至於因越界而變成很大的負數。同樣的道理,雖然char類型是整型,但是char類型通常用來存儲字符而不用於計算。事實上,在某些實現中char類型被當作signed類型,在另外一些實現中則被當作unsigned類型,因此把char類型作為計算類型使用時容易出問題。

        在大多數計算技上,使用int類型進行整型計算不易出錯。就技術上而言,int類型用16位表示——這對大多數應用來說太小了。實際應用中,大多數通用機器都是使用和long類型一樣長的32位來表示int類型。整型運算時,用32位表示int類型和用64位表示long類型的機器會出現應該選擇int類型還是long類型的難題題(當然這對ACMer來說並不是什麼難題可以瞬間判斷)。在這些機器上,用long類型進行計算所付出的運行時代價遠遠高於int類型進行同樣運算的代價,所以選擇類型前要先了解程序的細節並且比較long類型與int類型的實際運行時性能代價。

        決定使用哪種浮點型就容易多了:使用double類型基本上不會錯。在float類型中隱式的精度損失是不能忽視的,而雙精度計算的代價相對於單精度可以忽略。事實上,有些機器上,double類型比float類型的計算要快得多。long double類型提供的精度通常沒有必要,而且還要承擔額外的運行代價



作者 凌風

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved