Java 如何将整数转换为二进制表示形式,并根据需要附加一定数量的位
我知道Integer.toBinaryString(inti),但我想决定如何做是Java 如何将整数转换为二进制表示形式,并根据需要附加一定数量的位,java,binary,int,bits,Java,Binary,Int,Bits,我知道Integer.toBinaryString(inti),但我想决定如何做是根据需要在它的末尾附加一定数量的位(0) 示例:我有一个整数3,它由11表示为二进制,但我希望它总共有7位(位),这样它将得到二进制值的长度(在本例中为2位),然后在开始处加上5个0,这样您将以0000011结束,总共7位 试试看 String output= String.format("%"+numberOfZerosToPut+"s", Integer.toBinarySt
根据需要在它的末尾附加一定数量的位(0)
示例:我有一个整数3
,它由11表示为二进制
,但我希望它总共有7位(位),这样它将得到二进制值的长度(在本例中为2位),然后在开始处加上5个0,这样您将以0000011
结束,总共7位
试试看
String output= String.format("%"+numberOfZerosToPut+"s",
Integer.toBinaryString(3)).replace(' ', '0');
System.out.println(output);
创建如下方法:
public static String appendZeroes(String bits) {
int rem = bits.length()%8;
if(rem == 0)
return bits;
else
{
int appendingZeroes = 8-rem;
String s = "";
for(int i=0;i<appendingZeroes;i++)
s+="0";
s=s+bits;
return s;
}
}
公共静态字符串附录零(字符串位){
int rem=位。长度()%8;
如果(rem==0)
返回位;
其他的
{
int-appendingZeroes=8-rem;
字符串s=“”;
对于(int i=0;ii如果将其视为字符串,请使用循环连接“0”
s到它的前面。如果您将此视为int
,则无需进行任何类型的操作;不管怎样,值都将保持0x03。您可以查看此-,它看起来很相似,非常有魅力,谢谢!!此外,对于那些阅读本文时遇到类似问题(我使用的示例除外)的人,您可以将代码更改为字符串输出=String.format(“%”+numberOfZerosToPut+“s”,Integer.tobinarysting(3)).replace(“”,“0”);它只需在二进制值的前面加上所需的0数。但这将适用于只能使用8位形成的有限值。@nishu,是的,它将适用于7位,正如OP在他的问题中提到的7位。@nishu我用只需要4位(整数值9)的东西测试了它但我告诉它我总共需要9个比特,它工作得很好。如果没有已知的比特,那就好了。