作者KaryuuIssen (線性馬達)
看板C_and_CPP
標題[問題] 16進位運算問題
時間Wed Nov 7 09:23:33 2012
當用16進位運算時 如果結果小於1 就直接顯示0
例如:
float a = 0x1/2;
printf("%f",a);
結果出來會是0 不是0.5
如要正確顯示 似乎要加個float在前面才可以:
float a = float(0x1)/2;
不知道為什麼只有在結果小於1才需要加 可以說明一下嗎@@?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.18.113
推 purpose:整數除整數 11/07 09:51
→ KaryuuIssen:可是我不是定義成float了嗎? 11/07 10:04
→ linotwo:等號右邊的 0x1 和 2 分別都是整數型態, 11/07 10:08
→ linotwo:0x1 和 2 用 / 運算完後才會轉型成 float。 11/07 10:08
→ linotwo:你如果改成 0x1 / 2.f 也可以 11/07 10:11
→ KaryuuIssen:了解 感謝 11/07 10:30