我必须在这里使用方法。一个将十进制数转换为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;
}
将二进制转换为十进制我需要修复它以用于负二进制(烧尽)然后能够添加两个二进制数
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)
首先,很遗憾地告诉你,但是......这两种方法都已经存在,但是如果你试图对它们进行编码则很好
//The method to convert from int to Binary already exists : Integer.toBinaryString(int i)
System.out.println(toBinary(16)+" <=> "+Integer.toBinaryString(16));
//The method to convert from Binary to int (with String) too : Integer.parseInt(String s,2)
System.out.println(toDecimal(00010000)+" <=> "+Integer.parseInt(String.valueOf(10000),2));
对于&#39;添加&#39;方法只使用你的另外两种方法:
public String addBinary(int a, int b){
return toBinary(toDecimal(a)+toDecimal(b));
}
对于你toDecimal:永远不要使用while(true)
它风险很大,并在循环之外实例化你的变量(这里是else if),因为你每次都在创建一个新变量:使用内存