書:C++ Primer 5th Edition 中文版
買這本書有一段時間了,最近比較忙阿,之前因為沒辦使用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。
一般的字元型別是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
型別的轉換
給予bool的值0才是false,零以外的數字(正負)都是true。
bool的值是true,換成整數就是1,false就是0。
給予整數浮點數的值,就會被截斷(truncated),儲存小數點(decimal point)之前的值。
因為整數已經截斷小數點後的值,所以值是3.0。
無號型別的運算
不能小於0,不然就會繞回來(wraps around)。
我們可以看到a的值,因為無號沒有負數,所以就會出現不如預期結果,就是2^32-(42-10)。
注意:有號數根無號數座運算,會把有號數變成無號數。
第9行相減沒有小於0就輸出32。
第10行相減小於0就會(wraps around)。
第16行因為與無號做運算有號會被轉為無號,所以小於0(wrpas around)。
第17、18沒有小於0。
字面值
一個字面值(literal)的形式和值決定型態。
寫出20的值。
十進位(decimal) : 20
八進位(octal) : 024 //前面有0就是八進位的表示
十六進位(hexadecimal) : 0x14 //前面有0x就是16進位表示
留言列表