Re: [問題] C語言中的 int
※ 引述《dream0127uk (TCK)》之銘言:
: 各位好 ... 又有個問題想來請教各位了
: 老師今天說到 int ... 也是個很困惑的狀況下
: int x = 4,
: float f = 2.9f,
: x int 4
: x+f float 6.9f
: x+3.0 double 5.9
: 3L + f float 5.9f
: 3L + (int)f long 5L
: 我不知道什麼時候是 int, float, double, long ... 有什麼不一樣?
int 整數是也 在X位元 "作業系統"下 範圍為 -2^(X-1) ~ 2^(X-1)
long 也是整數 但不論幾位元,範圍都為 -2^(32-1) ~ 2^(32-1)
所以在32位的情況下,int = long
float : 用 32位,既四個字節,去存一個實數。
double : 用64位,既八個字節去存一個實數,想也知道存的更準,
但更耗礎存空間。
: 關於數字部分 ... 我不懂 為什麼 x + 3.0 會變成5.9f
: 整個開始有點困惑 ... 我知道要問老師...
: 但是這老師 ... 讓我很寒心-.-
我也不知道,怪怪的。
該是 6.99999xx.... 吧.
這是因為雙精度的"實數" (為何叫浮點,是因為他小數點,
放的位置是可以浮動的,反過來不能動的叫定點)
在電腦中,為二進位表式:會把些十進位可以清易表達的數字
需用循還小數才可精確表答,但位數又有限。。
所以就失精度嚕。
個人不喜歡寫成什麼 3.0f這種怪樣子。
謝成 (float)3 或乾脆就寫3.0 個人以為比較直覺。
: 另外他今天又有提到什麼 - - x 還有 + + x 或者 x + +
: 如果 int x = 3
: 那有什麼不一樣的狀況會發生? 我連google找文章來看都不知道要怎麼找
: 請各位幫忙我解惑一下吧! 感謝...
int x = 3;
int y;
/*現在 x是 3, y是另個空格*/
y = x++;
/*這動作是兩步
後制是說等其他做完再做這動作:
所以是: y = x; x = x+ 1; 所以 y 是 3,然後 x = 4*/
/*清回讓 x = 3*/
x = 3;
y = ++x;
/*這動作也是兩步 : 前置是說,先幹這事,再作其他的
所以是 x = x + 1;
y = x;
最終
x = 4; y = 4;
*/
不過個人還是喜歡把這種運算單獨放。
好比只有x++ 或 --y;
同行還有其他運算 看了很累。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 58.115.132.79
推
04/21 02:54, , 1F
04/21 02:54, 1F
→
04/21 02:55, , 2F
04/21 02:55, 2F
→
04/21 02:55, , 3F
04/21 02:55, 3F
對 忘了這點 修正下
※ 編輯: DrStein 來自: 58.115.132.79 (04/21 02:57)
→
04/21 02:57, , 4F
04/21 02:57, 4F
→
04/21 02:58, , 5F
04/21 02:58, 5F
→
04/21 02:58, , 6F
04/21 02:58, 6F
→
04/21 02:59, , 7F
04/21 02:59, 7F
→
04/21 03:00, , 8F
04/21 03:00, 8F
※ 編輯: DrStein 來自: 58.115.132.79 (04/21 03:01)
推
04/21 08:36, , 9F
04/21 08:36, 9F
推
04/21 10:35, , 10F
04/21 10:35, 10F
推
04/21 10:54, , 11F
04/21 10:54, 11F
※ 編輯: DrStein 來自: 59.120.158.204 (04/21 11:28)
→
04/21 11:37, , 12F
04/21 11:37, 12F
→
04/21 11:38, , 13F
04/21 11:38, 13F
→
04/21 19:07, , 14F
04/21 19:07, 14F
推
04/21 21:46, , 15F
04/21 21:46, 15F
→
04/21 21:47, , 16F
04/21 21:47, 16F
→
04/21 21:47, , 17F
04/21 21:47, 17F
→
04/21 21:47, , 18F
04/21 21:47, 18F
→
04/21 21:49, , 19F
04/21 21:49, 19F
推
04/22 00:43, , 20F
04/22 00:43, 20F
→
04/22 00:44, , 21F
04/22 00:44, 21F
→
04/22 00:44, , 22F
04/22 00:44, 22F
→
04/22 00:45, , 23F
04/22 00:45, 23F
→
04/22 00:45, , 24F
04/22 00:45, 24F
討論串 (同標題文章)