【发布时间】:2017-02-08 04:58:05
【问题描述】:
我这里有方法。一个将十进制数转换为 8 位二进制数。我需要添加另一种将两个二进制数相加的方法。例如 01000000 (64) + 00000010(2) = 01000010(66)。然后对于第二种方法,例如 34 + 56 等于 90,然后是 01011010 的二进制等值。所以我需要一个执行该方法的方法。因此,如果用户被要求输入两个十进制数字,它将取两个并将它们相加。以二进制(8位)输出答案
这会将十进制转换为二进制,我需要一些如何让它添加两个二进制数
public String toBinary(int number)
{
String binary = " ";
boolean isNeg = number < 0;
if(isNeg)
{
number += 1;
}
while (number > 0 || number < 0) {
int rem = number%2;
if(rem == -1)
{
rem = rem * -1;
}
binary = rem + binary;
number /= 2;
}
while(binary.length() <= 8)
{
binary = "0" + binary;
}
if(isNeg)
{
StringBuffer buff = new StringBuffer("");
for(int i =0; i < 8; i++)
{
char store = binary.charAt(i);
if(store == '0')
{
buff.append("1");
}else
{
buff.append("0");
}
}
binary = buff.toString();
}
return binary;
}
将二进制转换为十进制我需要将其修复为适用于负二进制(singed)然后能够添加两个二进制数
public int toDecimal(int number)
{
int decimal = 0;
int p = 0;
while(true)
{
if(number ==0)
{
break;
}else if(number > 0) {
int temp = number%10;
decimal +=temp*Math.pow(2,p);
number = number/10;
p++;
}
}
return decimal;
}}
【问题讨论】:
-
二进制 0 + 0 = 0; 0 + 1 = 1;和 1 + 1 = 0 进位 1;
-
一旦你有了两个二进制字符串。使用 Integer.parse(yourString.Charat(index));添加相同的索引。不要忘记在需要时携带一个。从每个添加构建一个结果字符串。