我有点像下面的表示
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/