【发布时间】:2016-08-09 16:10:45
【问题描述】:
尝试学习 Java(空闲时间)并坚持为什么输出的变量比我想要的多。我希望它只打印出 8 位。我试过输入 &255,但没有做任何事情来摆脱尾随数字。
示例: 总和为:0000111110
Scanner sn = new Scanner(System.in);
int arr[] = new int[10];
int i,m,n,sum,carry=0;
System.out.print("Enter 8-bit signed binary number:");
int n1 = sn.nextInt();
System.out.print("Enter another binary number:");
int n2 = sn.nextInt();
for(i=arr.length-1;i>=0;i--){
m=n1%10;
n=n2%10;
n1=n1/10;
n2=n2/10;
sum=m+n+carry;
if(sum==1)
{
arr[i]=1;
carry=0;
}
else if(sum==2)
{
arr[i]=0;
carry=1;
}
else if(sum==3)
{
arr[i]=1;
carry=1;
}
else{
arr[i]=m+n+carry&255;
}
}
System.out.printf("The sum is:");
for(i=0;i<arr.length;i++) {
System.out.print(arr[i]);
}
System.out.println("");
}
【问题讨论】:
-
用户应该输入什么作为输入,一个“伪二进制数”?就像只有 0 和 1 的数字一样?因为您使用
nextInt()读取输入。 -
对不起!是的!它假设只是 0 或 1!
-
究竟是什么问题?该程序似乎工作正常。你想去掉前导零,只输出 8 位数字吗?
-
它的打印输出如下:输入 8 位有符号二进制数:00010000 输入另一个二进制数:00010000 总和为:0000100000 我希望总和为 8 位,而不是数字代表。