--- GA: G-RZYLL0RZGV --- ###### tags: `大一程設` `東華大學` `東華大學資管系` `基本程式概念` `資管經驗分享` int、double、float、char、bool 混在一起怎麼辦? === [TOC] ## 前言 程式語言提供許多工具讓設計師、開發者使用,不過你是不是正確的使用這些工具是很重要的,而前面有提到變數對設計師來說是最重要的工具之一,每一個變數都會有他代表的意義與型態(data type),所以設定好正確的型態非常重要。 這份筆記想傳達一些新手會常犯的錯誤,**把資料型態不同的變數進行相加**,這是會有一些大家想不到的結果的,**所以要養成相同類型的變數才能做共同的處理的習慣**。 ## int、double、float、char、bool 混在一起怎麼辦? 話不多說,我們直接看程式碼。 ### double / float v.s. int ```cpp= int main(){ int a = 5; double b = 3.05; a = b; } ``` 上面的例子會發生甚麼事? a 究竟是 3、3.05、還是 5? 如果你看過前面的筆記,你一定不會說是 5,因為我們是把 b 變數的值指派給 a 變數,但因為 a 是整數型態的變數,所以只能存整數,因此答案是 3,可以得知,整數型態會自動捨去後面的小數位數。 那 float 跟 double 都是浮點數,所以套用在這個情境也一樣哦。 ### char v.s. int ```cpp= int main(){ int value = 'A'; cout << value << endl; //會印出 65 char letter = 65; cout << letter << endl; //會印出 A } ``` 你猜猜答這兩個值分別會是多少? 你可能會疑問,你不是說 int 存整數變數嗎,為什麼可以存字元 A,你在騙我對不對? ### 科普小知識 - ASCII 其實這跟**計算機概論**有關,在電腦的世界裡有一種編碼系統稱為 ASCII,當初電腦在外國創立的時候只能存英文,他們那時候哪知道怎麼存中文,然後 ASCII 總共只能存 128 個字母,因為總共只有 8 bits,只能用 0~127 來代表他們想表達的字。 ASCII 用注音來表示的話我們會發 「阿 斯 ㄎ一 code」,預防以後老師提到你們不知道這是啥,~~我秀個下限~~。 你可能看不太懂,先來看看維基百科。 [ASCII](https://zh.wikipedia.org/wiki/ASCII) 所以你可以發現在 2 進制底下的 65 被規定為大寫的 A,而其他的字母也有相對應的表達,所以這就是為什麼在 C++ 裡會印出 65 的原因。 而隨著技術的演進,電腦編碼系統也越來越多,當然你現在能在任何的電腦系統看到中文字,也是在後來被編進編碼系統裡面,而中文最令人熟知的就是 「big-5」,也就是我們俗稱的「大五碼」 [big5 - wiki](https://zh.wikipedia.org/wiki/%E5%A4%A7%E4%BA%94%E7%A2%BC) 至於剩下的內容我不多說,詳細請左轉計概。 所以同理,為什麼 letter 會印出 A,你們應該也可想而知了,同樣也是因為 ASCII。 ### bool v.s. int 這個在當初介紹 bool 的時候介紹過了,可以去看第二章 ppt 的第 48 頁。
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.