将十六进制转换为二进制--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))
应该这样做