2017.11.10 重讀C++ Primer

來源:互聯網
上載者:User

標籤:char   32位   四捨五入   類型   nic   期望   符號   ble   c++ prime   

第二章   變數和變數類型

1. 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位有效數字

 

如何選擇類型

  • 明知數值不可能為負的時候,選用無符號類型。unsigned
  • 使用 int 執行整數運算。在實際應用中,short 常常太小而long一般和int有一樣的尺寸。如果數值超過了int的表示範圍,選用long long。
  • 在算數運算式中不要使用char 和bool,只有在存放字元或布爾值的時候才能使用它們。因為char在一些機器上是有符號的,而在另一些機器上又是無符號的。
  • 浮點數運算選用double。
 2. 類型轉換 
  • 當我們把一個非布爾類型的算數值賦給布爾類型時,初始值為0則結果位false,否則結果為true。
  • 當我們把一個布爾值賦給非布爾類型時,初始值為false則結果為0,初始值為true 則結果為1.
  • 浮點數賦給整數類型時,進行近似處理。結果值僅保留浮點數中小數點之前的部分。不會四捨五入。
  • 把整數賦給浮點類型時,小數部分記為0。如果整數所佔空間超過浮點類型的容量,精度可能損失。
儘管我們不會故意給無符號的對象賦值一個負值,卻可能寫出這樣的代碼。例如,當一個算數運算式中既有無符號的數又有int值時,那個int 值就會轉換成無符號的數,把int轉換成無符號的過程和把int 直接賦值給無符號變數一樣。       例如unsigned u =10;int i= -42;std::cout<<i+i<<std::endl;std::cout<<u+i<<std::endl;       int佔32位,輸出4294967264第一個運算式,兩個數相加得到了期望值;在第二個運算式,相加前,先把整數-42轉換成無符號的數。把負數轉換成無符號數相當於直接給無符號數賦值一個負值,結果等於這個負數加上無符號數的模。 逸出序列 分行符號             \n縱向定位字元     \v反斜線            \\斷行符號符            \r橫向定位字元     \t退格符            \b問號                \?進紙符            \f警示符            \a雙引號               \"單引號             \‘                  

2017.11.10 重讀C++ Primer

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.