2011-11-26 71 views

回答

3

如果您指的是字符,則Java將每個字符使用兩個字節作爲其Unicode支持的一部分。如果你給ASCII值,Java將使高字節爲零。你不會保存一件事情。

如果你指的是浮點數或雙精度或整數,那麼每個值的字節數也是固定的。

你在吠叫錯誤的樹。不管你做什麼,我認爲這不會爲你節省任何東西。

如果您需要這種優化,而不是Java,那麼您最好是編寫C或C++。

我的第一個想法是,這是一個不受數據支持的想象優化。唯一能證明這一點的應用程序將是大規模的科學計算。即使這樣也不能證明它是正確的,因爲你需要比每個字節值更高的精度。

+0

看來OP只是想將ASCII數據轉換成二進制數據,這在Java中也完美無瑕。 – Voo

2

您可以在默認類型的類上使用解析方法。例如,如果這些數字是整數並以字符串「34」存儲,則可以使用Integer.parseInt(「34」),它將返回一個值爲34的int值。類似於Double,Float和Long。

+0

是的,但我需要一種方法來將這些數字存儲爲二進制數字而不是字符。然後在運行程序時將它們轉換爲字符..任何想法? –

0

轉換兩位數的ASCII字符串爲一個字節。當你需要將ASCII轉換回字符串時。以下代碼顯示瞭如何爲「95」執行此操作。

 
public class Main { 
    public static void main(String[] args) { 
    byte b = Byte.parseByte("95"); 
    String bString = "" + b; 
    } 
} 

如果你需要改變它們存儲在一個文件的方式,只是在閱讀兩位數文本數字爲字符串,並將其寫入到另一個文件字節。

相關問題