将十六进制字符串转换为二进制字符串-Java
好的,我想把一个十六进制字符串转换成一个二进制字符串,这样我就可以进行一些位交换和子交换等,我在这里遇到了我认为是答案的东西,但这给我带来了一些问题将十六进制字符串转换为二进制字符串-Java,java,string,binary,hex,Java,String,Binary,Hex,好的,我想把一个十六进制字符串转换成一个二进制字符串,这样我就可以进行一些位交换和子交换等,我在这里遇到了我认为是答案的东西,但这给我带来了一些问题 String hexToBinary(String hexadecimalString) { int i = Integer.parseInt(hexadecimalString, 16); String binaryString = Integer.toBinaryString(i); return binaryStrin
String hexToBinary(String hexadecimalString) {
int i = Integer.parseInt(hexadecimalString, 16);
String binaryString = Integer.toBinaryString(i);
return binaryString;
}
但是,例如,如果我传入十六进制字符串“03”,它将只返回一个二进制字符串“11”。或者,如果我传入十六进制字符串“41”,它将返回一个二进制字符串“1000001”。
如何使其始终返回长度为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());
甚至这个
String s = "00000000" + Integer.toBinaryString(41);
System.out.println(s.substring(s.length()-8));
字符串十六进制二进制(字符串十六进制字符串){
inti=Integer.parseInt(十六进制字符串,16);
String binaryString=Integer.toBinaryString(i);
while(binaryString.length()<8){
binaryString=“0”+二进制字符串;
}
返回二进制字符串;
}
在字符串的开头添加0,直到binaryString的长度为8检查此项。您只需要在字符串长度为8个字符之前使用零填充。必须对
string.format()
的结果调用replace()
,而不是对binrayString
进行调用。您好,Iswanto,我尝试了您的建议,但它仍然返回相同的字符串,没有填充?@lifeisaloop那么您一定做错了什么。因为这个例子是正确的。对于41,它返回00101001
。是的,我在那里又看了一遍,但我打错了。谢谢你们的帮助!
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;
}