基本型別 |
大小 |
最小值 |
最大值 |
boolean |
----- |
----- |
------ |
char |
16-bit |
Unicode 0 |
Unicode 2^16-1 |
byte |
8-bit |
-128 |
+127 |
short |
16-bit |
-2^15 |
+2^15-1 |
int |
32-bit |
-2^31 |
+2^31-1 |
long |
64-bit |
-2^63 |
+2^63-1 |
float |
32-bit |
IEEE754 |
IEEE754 |
double |
64-bit |
IEEE754 |
IEEE754 |
void |
|
|
|
注意!:表格里的^代表的是次方哈~
使用 Float 類 節省開發時間
作者: Builder.com
2004-11-16 11:50 AM
即使你可能知道 IEEE 浮點數,你可能也從來沒有逐個比特地處理過這類數據。下面我將向你展示如何逐個比特地處理 IEEE 浮點數,下次在你的 Java 項目需要從比特序列創建浮點數時,或者從浮點數創建比特序列時,你就知道Float 類可以為完成這一工作。
IEEE 浮點數介紹
IEEE 754 浮點單精度數字格式定義了一個用于存儲浮點數的比特布局。在空比特布局中,一個比特留作符號位,八個比特留作指數,23個比特留作尾數。這些比特是按最重要比特到最不重要比特進行排列的,如下例所示:
31 0
| |
SEEEEEEEEMMMMMMMMMMMMMMMMMMMMMMM
其中:
S = 符號位
E = 指數
M = 尾數
你可以從 IEEE 的站點購買一份 IEEE 浮點數的完整解釋。(如果在線搜索 IEEE 754,你應該可以找到免費的版本。)
Float 對 Java 社區的貢獻
下面的示例程序使用 Float 的兩個方法將一個浮點數轉成比特,然后又將這些比特轉成一個浮點數。
使用Float.floatToIntBits(float f) 方法可以將一個浮點數轉成一個比特序列。這個方法返回一個32位整數,表示你作為參數提供的浮點數的 IEEE 754 比特排列。
使用Float.intBitsToFloat(int bits) 方法可以進行反方向轉換。這個方法接受傳入的整數作為參數,將這些比特轉成一個 IEEE 浮點數。
下面是示例程序:
public class BitsTip {
public static void main(String args[]) {
float f = Float.parseFloat(args[0]);
int bits = Float.floatToIntBits(f);
System.out.println("bits: " + bits);
System.out.println("back to float: " + Float.intBitsToFloat(bits));
}
}
如果你曾經必須要手工進行這種轉換,那么你就會很欣賞這兩個簡單的方法為你節省的工作。如果你正在處理64位數,那么可以選擇使用Double 包裝器(wrapper)類。這個類提供同樣的方法處理IEEE 754 雙精度浮點數。
最好選擇閱讀一下javadoc,查閱里面有關浮點數與比特序列之間的轉換的部分,以便完整地了解這些方法都能為你些做什么。
posted on 2005-03-10 11:36
小力力力 閱讀(374)
評論(0) 編輯 收藏 所屬分類:
JAVA