将十六进制字符串转换为二进制字符串 - Java
Convert Hex String to Binary String - Java
好的,所以我想将十六进制字符串转换为二进制字符串,这样我就可以在线进行一些位交换和替换等操作,我遇到了我认为是这里的答案 Convert hex string to binary string 但是这给我带来了一些问题。
String hexToBinary(String hexadecimalString) {
int i = Integer.parseInt(hexadecimalString, 16);
String binaryString = Integer.toBinaryString(i);
return binaryString;
}
但是,例如,如果我传入十六进制字符串“03”,它只会 return 二进制字符串“11”。或者,如果我要传递十六进制字符串“41”,它将 return 二进制字符串“1000001”。
我怎样才能让它总是 return 一个长度为 8 位的二进制字符串?
提前非常感谢所有帮助:)
尝试了你的填充二进制字符串的建议,但它没有用,这是我试过的,你能看到我做错了什么吗?
String hexToBinary(String hexString) {
int i = Integer.parseInt(hexString, 16);
String binaryString = Integer.toBinaryString(i);
String padded = String.format("%8s", binaryString.replace(' ', '0'));
return padded;
}
试试这个:
String.format("%8s", Integer.toBinaryString(i)).replace(' ', '0')
在许多其他解决方案中,这可能是一个。
StringBuilder sb = new StringBuilder();
String binaryString = Integer.toBinaryString(41);
for (int i = binaryString.length(); i < 8; i++) {
sb.append('0');
}
sb.append(binaryString);
System.out.println(sb.toString());
或者这个
StringBuilder sb = new StringBuilder("00000000");
sb.append(Integer.toBinaryString(41));
System.out.println(sb.substring(sb.length()-8));
甚至这个
String s = "00000000" + Integer.toBinaryString(41);
System.out.println(s.substring(s.length()-8));
String hexToBinary(String hexadecimalString) {
int i = Integer.parseInt(hexadecimalString, 16);
String binaryString = Integer.toBinaryString(i);
while (binaryString .length() < 8) {
binaryString = "0" + binaryString ;
}
return binaryString;
}
在字符串的开头添加 0 直到 binaryString 的长度为 8
好的,所以我想将十六进制字符串转换为二进制字符串,这样我就可以在线进行一些位交换和替换等操作,我遇到了我认为是这里的答案 Convert hex string to binary string 但是这给我带来了一些问题。
String hexToBinary(String hexadecimalString) {
int i = Integer.parseInt(hexadecimalString, 16);
String binaryString = Integer.toBinaryString(i);
return binaryString;
}
但是,例如,如果我传入十六进制字符串“03”,它只会 return 二进制字符串“11”。或者,如果我要传递十六进制字符串“41”,它将 return 二进制字符串“1000001”。 我怎样才能让它总是 return 一个长度为 8 位的二进制字符串? 提前非常感谢所有帮助:)
尝试了你的填充二进制字符串的建议,但它没有用,这是我试过的,你能看到我做错了什么吗?
String hexToBinary(String hexString) {
int i = Integer.parseInt(hexString, 16);
String binaryString = Integer.toBinaryString(i);
String padded = String.format("%8s", binaryString.replace(' ', '0'));
return padded;
}
试试这个:
String.format("%8s", Integer.toBinaryString(i)).replace(' ', '0')
在许多其他解决方案中,这可能是一个。
StringBuilder sb = new StringBuilder();
String binaryString = Integer.toBinaryString(41);
for (int i = binaryString.length(); i < 8; i++) {
sb.append('0');
}
sb.append(binaryString);
System.out.println(sb.toString());
或者这个
StringBuilder sb = new StringBuilder("00000000");
sb.append(Integer.toBinaryString(41));
System.out.println(sb.substring(sb.length()-8));
甚至这个
String s = "00000000" + Integer.toBinaryString(41);
System.out.println(s.substring(s.length()-8));
String hexToBinary(String hexadecimalString) {
int i = Integer.parseInt(hexadecimalString, 16);
String binaryString = Integer.toBinaryString(i);
while (binaryString .length() < 8) {
binaryString = "0" + binaryString ;
}
return binaryString;
}
在字符串的开头添加 0 直到 binaryString 的长度为 8