isodd方法用來確定傳來的引數是否是奇數,由於當傳入負數i時,i%2的值為-1或0,負奇數也不能判斷正確。由於偶數是對2取余為0,所以應該將i%2==1修改為i%2!=0。修改後,奇數對2取餘不是正1或負1都能滿足。
public
static
boolean
isodd(int i)
public
static
void
main(string args)
//控制台輸出:
雙精度在記憶體表示(16進製制):4000000000000000
雙精度在記憶體表示(16進製制):3ff199999999999a
-1.10結果雙精度在記憶體表示(16進製制):3feccccccccccccc
雙精度在記憶體表示(16進製制):3feccccccccccccd
chapterutils是乙個檢視數字在記憶體儲存的工具類
public
class chapterutil
public
static string getfromint(int i)
public
static string getfromlong(long i)
public
static string getiee754fromdouble(double i)
}
2.0-1.1 涉及浮點數加減法
在我的一篇部落格中介紹了float在記憶體儲存方式,其實double也差不多
double 符號位1位,指數字11位,尾數52位2.0是正數,符號位0,2的二進位制表示為1∗
211 ∗2
1,指數是1,所以指數字為1+1023=
1024(10
)=400(16)
1024(10
)=
400(16)
,所以符號位包括指數字就是
400(16)
400(16)
,其餘由於指數字不全為0,所以是規格的,尾數省去1,都是0.
1.1是正數,符號位0, 1.1的二進位制表示為
1.000110011⋯
以0011迴圈
∗20 1.000110011⋯⏟
以0011迴圈
∗2
0,由於double尾數只能存52位,所以尾數就是1⋯
11個9
a(16)
1 ⋯⏟
11個9a
(16
),最後一位為a,是因為最後乙個9後面還是1,所以進一位由9變為a。指數為0,指數字就是0+1023=
1023(10
)=3f
f(16)
1023(10
)=3f
f(16)
.浮點數的減法,先對階,1.1的指數也就是階碼比2少1,尾數向右移一位,隱藏的那一位也右移,得到8⋯
11個c
d(16)
8 ⋯⏟
11個cd
(16
),然後計算尾數的減法,得到7⋯
12個3
7 ⋯⏟
12個
3,進行規範化操作,因為不滿足規範化,向左移2位,最後補0,階碼減2,最後尾數為⋯
13個
c ⋯⏟13
個c
,指數字為-1,所以指數字和符號位一起就是3f
e(16)
3 fe
(16
).最終結果為3f
e⋯
13個c
3 fe
⋯⏟13個
c.
public
static
void
main(string args)
//控制台輸出:
//一天中微秒數:溢位後的數500654080
//一天中微秒數:正確的值86400000000
//正確的long在記憶體儲存為:141dd76000
//溢位後的值在記憶體儲存為:1dd76000
//86400000
//5
由於int與int相乘只會儲存在int裡,由於最終的結果已經超出int的範圍,即使儲存在long裡,也只是溢位後的值。因為由記憶體儲存可見,捨去了8位,14是十六進製制的。
public
static
void
main(string args)
//控制台列印:
//17777
由於5432l中l很像1,特別容易看錯,所以一定要用大寫的l來表示乙個長整數。 《java解惑》筆記三
public static void main string args 控制台列印 1e240 7616 7616類似 復合賦值操作符,e1 op e2 等價於 e1 t e1 op e2 其中t是e1的型別。上面的例子中,當進行加法時,會將運算元提公升為int,得到123456,然後會轉化為sho...
《java解惑》筆記八
要實現i i為true public static void main string args 控制台輸出 true 7ff8000000000000 7ff8000000000000double.nan表示乙個非數字 not a number 在記憶體儲存為0x7ff8000000000000,維...
Java解惑筆記《不斷更新》
1 判斷奇數isodd return i 1 0 2 new bigdecimal 2.00 subtract new bigdecimal 1.10 避免用new bigdecimal 1 因為精確到0.1000000555111等非常精確的數字 還有一種妥協的解決辦法 system.out.pr...