java - 从int bit base 2值获取int数组值

标签 java

我有点像下面的表示

Bit 0(2^0 .= 1) - 1
Bit 1(2^1 .= 2) - 2
Bit 2(2^2 .= 4) - 4
Bit 3(2^3 .= 8) - 8
Bit 4(2^4 .= 16) - 16


7表示我们有1+2+4。但是,如何以编程方式获取此数组?

最佳答案

连续除以2,然后将余数保存

int n = 7;
StringBuilder sb  = new StringBuilder();
while(n>0) {
    sb.append(n%2);
    n = n/2;
}
System.out.println(sb.reverse().toString());


您可以随时存储它。当前,它以字符串形式存储(二进制表示形式7)。

要将字符串从二进制转换回二进制,请从LSB开始,如果位值为1,则以位的2的幂进行加法

关于java - 从int bit base 2值获取int数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42388245/

相关文章:

java - Bouncy caSTLe 分离签名更改 API

java - 尝试使用文件读取器从文本文件创建 JComboBox

java - 如何找到for循环中的最小数?

java - 数组中的 Firebase 数据检索

java - 如何向 javafx 添加勾号?

java - (有必要吗?)ByteBuffer.wrap(buffer.array()) 的副作用

java - 制作通用数组是不好的做法吗?有什么替代方法?

javascript - 如何通过 linkText/linkName 严格地在表的隐藏行之一中找到特定链接(不使用 css-selectors 或 xpath)?

java - 使用 Aspose 在 Java 中将 pdf 转换为 word 时不显示图表

java - 如何在另一个 Activity 中使用视频 View 播放录制的视频