首页 > 解决方案 > 如何仅使用按位运算符添加或减去由 char[] 数组表示的两个二进制数

问题描述

我必须添加和减去由 char[] 数组表示的两个二进制数,并将它们显示在指定的数字系统中。我已经有了这个:

public static void main(String[] args) {

    String num1 = "127";
    String num2 = "5";
    char operator = '+'; // or "-" for substract
    int system = 2; // from 2 to 16

    char[] number1 = new char[num1.length()];
    for (int i = 0; i < num1.length(); i++) {
        number1[i] = num1.charAt(i);
    }
    char[] number2 = new char[num2.length()];
    for (int i = 0; i < num2.length(); i++) {
        number2[i] = num2.charAt(i);
    }


    calc(number1, number2, operator, system);
}

public static void calc(char[] number1, char[] number2, char operator, int system){
    char[] finalResult;
    char[] bin = toBinary(number1);
    char[] bin2 = toBinary(number2);
    if(operator == "+"){finalResult = addBinary(number1, number2)}
    else{finalResult = substractBinary(number1, number2)};
    
    // sout result of add or substract in given system by string of numbers
}

在这里,我有两个无法编写的函数:

public static char[] addBinary(char[] binaryNumber1, char[] binaryNumber2){
    char[] result;
    return result;
}

public static char[] substractBinary(char[] binaryNumber1, char[] binaryNumber2){
    char[] result;
    return result;
}

而且我不知道如何在 addBinary 和 substractBinary 函数中进行按位运算。

标签: javabit-manipulationcalculator

解决方案


推荐阅读