java - 字符串转二进制?

标签 java string binary

我有一个很奇怪的情况,

我正在为另一个程序编写一个过滤器引擎,那个程序有所谓的“保存区域”。这些保存区域中的每一个都编号为 0 到 32(为什么有 33 个,我不知道)。它们通过二进制字符串打开或关闭,

1 = save area 0 on
10 = save area 1 on, save area 0 off
100 = save area 2 on, save areas 1 and 0 off.

等等。

我有另一个程序传递它需要的保存区域,但它使用十进制表示和下划线 - 例如保存区域 1、2 和 3 的 1_2_3。

我需要将该示例转换为 1110。

我想到的是我可以构建一个字符串,如下所示: 我将它分解(使用拆分)到 savePart[i]。然后我遍历 savePart[i] 并构建字符串:

String saveString = padRight("0b1",Integer.parseInt(savePart[i]));

例如,在保存区域 6 的情况下,这将给我一个字符串,该字符串显示为“0b1000000”。

有没有一种方法可以像读取二进制数一样读取该字符串。因为如果我说:

long saveBinary = 0b1000000L

那完全可行。

或者,是否有更聪明的方法来做到这一点?

最佳答案

long saveBinary = Long.parseLong(saveString, 2);

请注意,您必须去掉 0b 前缀。

关于java - 字符串转二进制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32278449/

相关文章:

java - Java 中的 iOS CryptoKit

java - 如何解决给出 NullPointerException 的@Inject?

java - 在 Java REST Web 服务中访问部分多部分/表单数据发布请求

java - 将二进制改为十进制

php - 0A 在使用 PHP 检索时添加到 BLOB

java - JAXb、Hibernate 和 bean

html - 从字符串中转义HTML以及\r\t和\n

c++ - 如何查找字符串中包含数字的单词

Python 如何扩展 `str` 并重载其构造函数?

c++ - netbeans C++ 调试中的信号是什么