小安
2006-10-15 16:12:18 UTC
【 在 ***@bbs.ee.ncku.edu.tw (kimi) 的大作中提到: 】
: 請問float不是用來宣告浮點型變數的嗎?(大一)
: 為什麼我打
: float a=-2.2
: 結果就error
: 打
: float a=2
: 結果就對?
因為 Java 中的 浮點數 literal 都是 double
整數則是 int,因此 float a=2,這個 2 可以 implicitly casting 成 float
而第一個例子則必須要手動轉型,或著這樣宣告 float a=-2.2f;
: 還有...書上說float 用4 bytes去儲存..可顯示範圍為:
: -3.40282347*e+48~-1.40239846*e-45
: Q1:為什麼範圍是負的到負的?
: Q2:這是怎麼算的?(跟int的算法好像不同)
我想應該是 -3.40282347*e+48 ~ -1.40239846*e-45
和 1.40239846*e-45 ~ 3.40282347*e+48
至於怎麼算..如果了解 IEEE 754 的定義
應該就可以算得出來了
簡單的說正數的最小值就是 mantissa 都設成 0,exponment 也設為最小
懂得原理的話最大值 or 負數的範圍也都算得出來
--
NPDA - Non-deterministic PushDown Automata
(不確定是否推倒自動機)
DPDA - Deterministic PushDown Automata
(確定會推倒自動機)
得証: DPDA 效率比較高
[m[1;36m※ 來源:‧資訊傳奇 inf.csie.thu.edu.tw‧[FROM: 59-126-173-31.HINET-IP.hinet.n][m
: 請問float不是用來宣告浮點型變數的嗎?(大一)
: 為什麼我打
: float a=-2.2
: 結果就error
: 打
: float a=2
: 結果就對?
因為 Java 中的 浮點數 literal 都是 double
整數則是 int,因此 float a=2,這個 2 可以 implicitly casting 成 float
而第一個例子則必須要手動轉型,或著這樣宣告 float a=-2.2f;
: 還有...書上說float 用4 bytes去儲存..可顯示範圍為:
: -3.40282347*e+48~-1.40239846*e-45
: Q1:為什麼範圍是負的到負的?
: Q2:這是怎麼算的?(跟int的算法好像不同)
我想應該是 -3.40282347*e+48 ~ -1.40239846*e-45
和 1.40239846*e-45 ~ 3.40282347*e+48
至於怎麼算..如果了解 IEEE 754 的定義
應該就可以算得出來了
簡單的說正數的最小值就是 mantissa 都設成 0,exponment 也設為最小
懂得原理的話最大值 or 負數的範圍也都算得出來
--
NPDA - Non-deterministic PushDown Automata
(不確定是否推倒自動機)
DPDA - Deterministic PushDown Automata
(確定會推倒自動機)
得証: DPDA 效率比較高
[m[1;36m※ 來源:‧資訊傳奇 inf.csie.thu.edu.tw‧[FROM: 59-126-173-31.HINET-IP.hinet.n][m