如何添加二进制数

时间:2017-02-07 20:01:12

标签: java binary

我必须在这里使用方法。一个将十进制数转换为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;

}}

1 个答案:

答案 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),因为你每次都在创建一个新变量:使用内存