gpt4 book ai didi

java - 如何将负 BigInteger 转换为给定位数的二进制补码二进制字符串?

转载 作者:行者123 更新时间:2023-12-01 10:32:54 25 4
gpt4 key购买 nike

BigInteger b = new BigInteger("-5");
System.out.println(b.toString(2));

打印

-101

我想获得给定位数的二进制补码二进制代码,而不是带有 - 符号的正二进制字符串。

例如

BigInteger b = new BigInteger("-5");
System.out.println(b.toString(2, 4));//-5 on 4 bits in binary code

应该显示

1011

BigInteger b = new BigInteger("-5");
System.out.println(b.toString(2, 5));//-5 on 4 bits in binary code

应该显示

11011

最佳答案

据我所知,BigInteger 这并不存在。您需要自己构建这样的方法。

String toString(BigInteger bigInt, int bits){
StringBuilder sb = new StringBuilder();
for(int bit = bits - 1; bit >= 0; bit--)
if(BigInteger.valueOf(1 << bit).and(bigInt).compareTo(BigInteger.ZERO) != 0)
sb.append("1");
else
sb.append("0");
return sb.toString();
}

关于java - 如何将负 BigInteger 转换为给定位数的二进制补码二进制字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34999478/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com