[問題] 16進位運算問題

看板C_and_CPP (C/C++)作者 (線性馬達)時間13年前 (2012/11/07 09:23), 編輯推噓1(105)
留言6則, 3人參與, 最新討論串1/1
當用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

11/07 09:51, , 1F
整數除整數
11/07 09:51, 1F

11/07 10:04, , 2F
可是我不是定義成float了嗎?
11/07 10:04, 2F

11/07 10:08, , 3F
等號右邊的 0x1 和 2 分別都是整數型態,
11/07 10:08, 3F

11/07 10:08, , 4F
0x1 和 2 用 / 運算完後才會轉型成 float。
11/07 10:08, 4F

11/07 10:11, , 5F
你如果改成 0x1 / 2.f 也可以
11/07 10:11, 5F

11/07 10:30, , 6F
了解 感謝
11/07 10:30, 6F
文章代碼(AID): #1GcRWRuH (C_and_CPP)
文章代碼(AID): #1GcRWRuH (C_and_CPP)