将十六进制转换为二进制--java

将十六进制转换为二进制--java,java,Java,我想把十六进制转换成二进制。我已经有了十进制转换成二进制的代码,只是不知道如何从那里转换成二进制 public static String hexToDec(String valueIn) { int endNum = 0; for (int i = 0; i < valueIn.length(); i++) { char curDigit = valueIn.charAt(i); endNum *= 16;

我想把十六进制转换成二进制。我已经有了十进制转换成二进制的代码,只是不知道如何从那里转换成二进制

public static String hexToDec(String valueIn) {
    int endNum = 0;

    for (int i = 0; i < valueIn.length(); i++) {         
        char curDigit = valueIn.charAt(i);
        endNum *= 16;     

        if (curDigit >= 'A' && curDigit <= 'F')      
            endNum += 10 + (curDigit - 'A');
        else 
            endNum += curDigit - '0';
    }
    return "" + endNum;
}


public static void main(String[] args) {
    Scanner keyboard = new Scanner (System.in);
    System.out.println("Please enter the decimal number: ");
    String valueIn = keyboard.nextLine ();
    String outputOut = hexToDec(valueIn);
    System.out.println("The output is: " + outputOut);    
}

public static String decimalToBinary(int valueIn) {
    int remainder, i = 0;
    String binaryNum = "";
    while (valueIn != 0) {
        remainder = valueIn % 2;
        valueIn /= 2;
        binaryNum = remainder+binaryNum;
    }
    return binaryNum;
}

public static void main(String[] args) {
    Scanner keyboard = new Scanner (System.in);
    System.out.println("Please enter the decimal number: ");
    int valueIn = keyboard.nextInt ();
    String outputOut = decimalToBinary(valueIn);
    System.out.println("The output is: " + outputOut);    
}
公共静态字符串hexToDec(字符串值in){
int-endNum=0;
对于(int i=0;i如果(curDigit>='A'&&curDigit我不想打断你当前的方法,我会从评论中说,要将十进制转换为二进制,你所要做的就是一次又一次地得到数字的模,然后以相反的顺序将它们结合起来得到你的二进制数

这将是一个更长的方法,所以我想说你可能会从下面的代码中获得灵感

BigInteger.toString(基数)
将执行您想要的操作。只需传入基数2。了解更多信息

静态字符串hexToBin(字符串s){
返回新的BigInteger(s,16).toString(2);
}
BigInteger
确保了大数字在转换过程中不会出现问题,但您也可以使用下面的代码,这个简单的标记可以让您更好地理解转换

字符串十六进制二进制(字符串十六进制){
int i=整数.parseInt(十六进制,16);
String bin=Integer.toBinaryString(i);
返回仓;
}

虽然我不想打断您当前的方法,但我想从看到的评论中说,要将十进制转换为二进制,您所要做的就是一次又一次地获得数字的模,然后以相反的顺序组合这些值以获得二进制数

这将是一个更长的方法,所以我想说你可能会从下面的代码中获得灵感

BigInteger.toString(基数)
将执行您想要的操作。只需传入基数2。了解更多信息

静态字符串hexToBin(字符串s){
返回新的BigInteger(s,16).toString(2);
}
BigInteger
确保了大数字在转换过程中不会出现问题,但您也可以使用下面的代码,这个简单的标记可以让您更好地理解转换

字符串十六进制二进制(字符串十六进制){
int i=整数.parseInt(十六进制,16);
String bin=Integer.toBinaryString(i);
返回仓;
}

您可以根据注释定义自己的映射并完全跳过十进制转换路径

HashMap<char, String> mapping = new HashMap<char, String>();
mapping.put('0', "0000" );
mapping.put('1', "0001" );
mapping.put('2', "0010");
mapping.put('3', "0011");
mapping.put('4', "0100" );
mapping.put('5', "0101");
mapping.put('6', "0110");
mapping.put('7', "0111");
mapping.put('8', "1000");
mapping.put('9', "1001");
mapping.put('a', "1010");
mapping.put('b', "1011");
mapping.put('c', "1100");
mapping.put('d', "1101");
mapping.put('e', "1110");
mapping.put('f', "1111");

您可以简单地定义自己的映射,并根据注释完全跳过十进制转换路径

HashMap<char, String> mapping = new HashMap<char, String>();
mapping.put('0', "0000" );
mapping.put('1', "0001" );
mapping.put('2', "0010");
mapping.put('3', "0011");
mapping.put('4', "0100" );
mapping.put('5', "0101");
mapping.put('6', "0110");
mapping.put('7', "0111");
mapping.put('8', "1000");
mapping.put('9', "1001");
mapping.put('a', "1010");
mapping.put('b', "1011");
mapping.put('c', "1100");
mapping.put('d', "1101");
mapping.put('e', "1110");
mapping.put('f', "1111");
举个例子

什么是4B5(十六进制)?

  • “4”处于“16×16”位置,因此表示4×16×16

  • “B”(11)处于“16”位置,因此表示11×16

  • “5”处于“1”位置,因此表示5

答案:4B5=4×16×16+11×16+5(=1205)十进制

然后将十进制数转换为二进制数

如何将十进制转换为二进制

转换步骤:

  • 把这个数字除以2
  • 获取下一次迭代的整数商
  • 获取二进制数字的余数
  • 重复这些步骤,直到商等于0
(1205)十进制=(10010110101)二进制。

尝试实现这一点。

作为示例

什么是4B5(十六进制)?

  • “4”处于“16×16”位置,因此表示4×16×16

  • “B”(11)处于“16”位置,因此表示11×16

  • “5”处于“1”位置,因此表示5

答案:4B5=4×16×16+11×16+5(=1205)十进制

然后将十进制数转换为二进制数

如何将十进制转换为二进制

转换步骤:

  • 把这个数字除以2
  • 获取下一次迭代的整数商
  • 获取二进制数字的余数
  • 重复这些步骤,直到商等于0
(1205)十进制=(10010110101)二进制。


试着实现这一点。

十进制到二进制如何?@ScaryWombat我也有相应的代码,我会立即更新它hex->decimal->binary-看起来你已经具备了所有需要的功能。从十六进制到二进制的直接步骤比通过中间的十进制要容易得多。每个十六进制数字对应4位。
十进制二进制(Integer.parseInt(hexToDec(hextvaluehere))
应该怎么处理十进制到二进制的问题?@ScaryWombat我也有相应的代码,我会马上更新它hex->decimal->binary-看起来你已经有了所有需要的了。从十六进制到二进制的直接步骤比从十进制到二进制要简单得多。每个十六进制数字对应4位。
十进制二进制(Integer.parseInt(hexToDec(hextvaluehere))
应该这样做