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

发布于 2024-12-18 02:05:45 字数 85 浏览 0 评论 0原文

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

有什么想法吗?

I have numbers written as ASCII codes each of 2 bytes which wastes a lot of the space. I want to convert those number to their corresponding ASCII code to save the space.

Any idea?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

兔姬 2024-12-25 02:05:45

如果您指的是字符,Java 使用每个字符两个字节作为其 Unicode 支持的一部分。如果给出 ASCII 值,Java 会将高字节设为零。你什么也救不了。

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

你找错了树。我认为无论你做什么,这都不会为你节省任何东西。

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

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

If you mean characters, Java uses two bytes per character as part of its Unicode support. If you give ASCII values, Java will make the upper byte zero. You won't save a thing.

If you mean floats or doubles or ints, the bytes per value are fixed there as well.

You're barking up the wrong tree. I don't think this will save you anything no matter what you do.

You're better off writing C or C++ if you need that kind of optimization, not Java.

My first thought is that this is an imagined optimization that isn't supported by data. The only application that would justify something like this would be scientific computing on a large scale. Even that wouldn't justify it, because you'll need more precision than a byte per value.

墨离汐 2024-12-25 02:05:45

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

You can use the parse methods on the default types' class. For example, if these numbers are integers and are stored as string "34", you can use Integer.parseInt("34") which returns you a single int whose value is 34. Similarly for Double, Float and Long.

心不设防 2024-12-25 02:05:45

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

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

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

Do you want to convert the Hex number to bytes? If so, this is your answer:

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

If you want to convert number to byte -> http://snippets.dzone.com/posts/show/93

娇纵 2024-12-25 02:05:45

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

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

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

Convert the two digit ASCII string to a byte. When you need the ASCII back just convert it to a string. The following code shows how to do this for "95".

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

If you need to change the way they are stored in a file, just read the two digit text numbers in as strings and write them out to another file as bytes.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文