我正在编写一个程序,它从用户那里获取一个十进制数,然后输出它的二进制数。
e.g。 3(base10)= 00000011(base2)
目前,我的程序仅限于接受0-128范围内的数字(需要8位来解决此问题或1字节)。
我想扩展它以便能够接受更大的数字,这需要更多的位来解决。
目前的课程如下:
public class Number {
private int numberInput;
public Number(int input)
{
this.numberInput = input;
}
public String getBinary()
{
StringBuilder sb = new StringBuilder();
int maxBinary = 128;
while(numberInput > 0)
{
if(numberInput >= maxBinary)
{
numberInput -= maxBinary;
sb.append("1");
}
else
{
sb.append("0");
}
maxBinary = (maxBinary / 2);
}
while(sb.length() < 8)
{
sb.append("0");
}
return sb.toString();
}
}
基本操作是迭代位位置,然后确定是否应该放置1或0,一旦输入数字被分解为0,如果位长度小于8,它将追加0到输出,直到它是一个8位二进制“数字”,然后输出到控制台。
当需要超过8位时,我是否能够以类似的方式分解数字? 提前致谢
答案 0 :(得分:0)
感谢James_D。
public class Number {
private int numberInput;
public Number(int input)
{
this.numberInput = input;
}
public String getBinary()
{
return Integer.toBinaryString(numberInput);
}
https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html#toBinaryString-int-