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



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

任何想法?

如果您指的是字符,则Java每个字符使用两个字节作为其Unicode支持的一部分。如果您给出ASCII值,Java将使上字节为零。你不会保存任何东西。

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

你找错对象了。我认为不管你做什么,这都救不了你什么。

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

我的第一个想法是,这是一个想象的优化,没有数据支持。唯一能证明这一点的应用是大规模的科学计算。即使这样也不能证明它是合理的,因为您需要比每个值一个字节更高的精度。

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

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

将十六进制转储的字符串表示转换为使用Java的字节数组?

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

将两位数的ASCII字符串转换为字节。当您需要返回ASCII时,只需将其转换为字符串。下面的代码显示了如何为"95"执行此操作。

<>之前公共类Main {public static void main(String[] args) {byte b = byte . parsebyte ("95");String bString = " + b;}}之前

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

最新更新