書:C++ Primer 5th Edition 中文版

image

買這本書有一段時間了,最近比較忙阿,之前因為沒辦使用C++11去編譯所以書上有些功能就不能用,就有點懶得去碰,不過最近有找到方法了,雖說這本書我前面有幾張已經看過了然後有寫些文章,在思考要不要從頭看,算了,有始有終,把前面一些重要的寫一寫。

這本書是用c++11去做編譯,有些功能是只有11才提供,那我是用dev c++ 下面這個網址是教你用dev c++ 用 c++11編譯。

https://programming727.pixnet.net/blog/post/22393244-dev-c++-%E4%BD%BF%E7%94%A8c++11

 

●原始內建型別

○有號(Signed)和無號(Unsigned)

●型別的轉換

○無號型別的運算

●字面值

原始內建型別

算術型別 (arithmetic type): 整數、字元、布林、浮點數、void。

image

一般的字元型別是char,可以存放所有字元集(character set)。

wchar_t、char16_t、char32_t用於延伸字元集(extended character sets)

char16_t、char32_t是為Unicode字元所設計(Unicode是一種標準,基本上任何自然語言所用的字都可以用它來表示)

 

有號(Signed)和無號(Unsigned)

有號跟無號的差別就是有沒有負號,int、short、long、long long都是有號,在前面加上Unsigned就會把負號的部分移到正號。

int = -2,147,483,648 ~ 2,147,483,648

unsinged int = 4,294,967,296

 

型別的轉換

image

給予bool的值0才是false,零以外的數字(正負)都是true。

bool的值是true,換成整數就是1,false就是0。

給予整數浮點數的值,就會被截斷(truncated),儲存小數點(decimal point)之前的值。

因為整數已經截斷小數點後的值,所以值是3.0。

無號型別的運算

不能小於0,不然就會繞回來(wraps around)。

我們可以看到a的值,因為無號沒有負數,所以就會出現不如預期結果,就是2^32-(42-10)。

image

注意:有號數根無號數座運算,會把有號數變成無號數。

第9行相減沒有小於0就輸出32。

第10行相減小於0就會(wraps around)。

第16行因為與無號做運算有號會被轉為無號,所以小於0(wrpas around)。

第17、18沒有小於0。

image

字面值

一個字面值(literal)的形式和值決定型態。

寫出20的值。

十進位(decimal) : 20

八進位(octal) : 024 //前面有0就是八進位的表示

十六進位(hexadecimal) : 0x14 //前面有0x就是16進位表示

arrow
arrow
    創作者介紹
    創作者 讀書小天地 的頭像
    讀書小天地

    書籍分享天地

    讀書小天地 發表在 痞客邦 留言(0) 人氣()