如何将存储为两个字符ASCII字符串的数字转换为二进制?

时间:2011-11-26 17:06:41

标签: java binary ascii

我将数字写成每个2字节的ASCII码,浪费了很多空间。我想将这些数字转换为相应的ASCII码以节省空间。

有什么想法吗?

4 个答案:

答案 0 :(得分:3)

如果您指的是字符,Java会将每个字符使用两个字节作为其Unicode支持的一部分。如果给出ASCII值,Java将使高位字节为零。你不会保存一件事。

如果你的意思是浮点数,双精度数或整数,那么每个值的字节数也是固定的。

你正在咆哮错误的树。无论你做什么,我都不认为这会为你节省一切。

如果你需要那种优化而不是Java,你最好还是编写C或C ++。

我首先想到的是,这是一种数据不支持的想象优化。唯一可以证明这样的事情的应用是大规模的科学计算。即使这样也不合理,因为你需要的精度高于每个值的一个字节。

答案 1 :(得分:2)

您可以在默认类型的类上使用解析方法。例如,如果这些数字是整数并存储为字符串“34”,则可以使用Integer.parseInt(“34”)返回单个int,其值为34.类似于Double,Float和Long。

答案 2 :(得分:0)

您想将十六进制数转换为字节吗?如果是这样,这是你的答案:

Convert a string representation of a hex dump to a byte array using Java?

如果要将数字转换为字节 - > http://snippets.dzone.com/posts/show/93

答案 3 :(得分:0)

将两位ASCII字符串转换为一个字节。当您需要ASCII返回时,只需将其转换为字符串即可。以下代码显示了如何为“95”执行此操作。

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

如果您需要更改它们存储在文件中的方式,只需将两位数文本数字作为字符串读取,然后将其作为字节写入另一个文件。