Loops 十六进制到二进制-在循环中使用带数字和附加数字的CharAt()
我的任务是手动将十六进制代码转换成二进制 我几乎让它工作了,只是每当它试图把一个整数转换成二进制时就会出错 例如,转动十六进制数1,使其停止 所以,如果我有ABCDEFABC,一切都会完美运行 如果我有ABCDEF123,它停在F,出于某种原因给我一个88 如有任何见解,将不胜感激 这是我的代码:Loops 十六进制到二进制-在循环中使用带数字和附加数字的CharAt(),loops,binary,append,charat,Loops,Binary,Append,Charat,我的任务是手动将十六进制代码转换成二进制 我几乎让它工作了,只是每当它试图把一个整数转换成二进制时就会出错 例如,转动十六进制数1,使其停止 所以,如果我有ABCDEFABC,一切都会完美运行 如果我有ABCDEF123,它停在F,出于某种原因给我一个88 如有任何见解,将不胜感激 这是我的代码: String Hex2="ABCDEF123"; System.out.println("NEWLOOPTEST"); StringBuilder hexstring =
String Hex2="ABCDEF123";
System.out.println("NEWLOOPTEST");
StringBuilder hexstring = new StringBuilder();
for (int x = 0; x <= 8; x++)
{
if (Hex2.charAt(x) == 'A')
{
hexstring.append(1010);
}
else if (Hex2.charAt(x) == 'B')
{
hexstring.append(1011);
}
else if (Hex2.charAt(x) == 'C')
{
hexstring.append(1100);
}
else if (Hex2.charAt(x) == 'D')
{
hexstring.append(1101);
}
else if (Hex2.charAt(x) == 'E')
{
hexstring.append(1110);
}
else if (Hex2.charAt(x) == 'F')
{
hexstring.append(1111);
}
//works up to here
else if (Hex2.charAt(x) == '0')
{
hexstring.append(0000);
}
else if (Hex2.charAt(x) == '1')
{
hexstring.append(0001);
}
else if (Hex2.charAt(x) == '2')
{
hexstring.append(0010);
}
else if (Hex2.charAt(x) == '3')
{
hexstring.append(0011);
}
else if (Hex2.charAt(x) == '4')
{
hexstring.append(0100);
}
else if (Hex2.charAt(x) == '5')
{
hexstring.append(0101);
}
else if (Hex2.charAt(x) == '6')
{
hexstring.append(0110);
}
else if (Hex2.charAt(x) == '7')
{
hexstring.append(0111);
}
else if (Hex2.charAt(x) == '8')
{
hexstring.append(1000);
}
else if (Hex2.charAt(x) == '9')
{
hexstring.append(1001);
}
else
{
System.out.println("error at char" + x );
}
}
System.out.println("Hex To Decimal is " + hexstring.toString());
String Hex2=“ABCDEF123”;
System.out.println(“NEWLOOPTEST”);
StringBuilder hexstring=新的StringBuilder();
对于(int x=0;x替换:
else if (Hex2.charAt(x) == '3')
{
hexstring.append(0010);
}
为此:
else if (Hex2.charAt(x) == '3')
{
hexstring.append(0011);
}
else if (Hex2.charAt(x) == '7')
{
hexstring.append(0111);
}
并替换:
else if (Hex2.charAt(x) == '7')
{
hexstring.append(1011);
}
为此:
else if (Hex2.charAt(x) == '3')
{
hexstring.append(0011);
}
else if (Hex2.charAt(x) == '7')
{
hexstring.append(0111);
}
这是因为您正在向StringBuilder追加数值而不是字符串。请引用您的二进制值
String Hex2="ABCDEF123";
System.out.println("NEWLOOPTEST");
StringBuilder hexstring = new StringBuilder();
for (int x = 0; x <= 8; x++)
{
if (Hex2.charAt(x) == 'A')
{
hexstring.append("1010");
}
else if (Hex2.charAt(x) == 'B')
{
hexstring.append("1011");
}
else if (Hex2.charAt(x) == 'C')
{
hexstring.append("1100");
}
else if (Hex2.charAt(x) == 'D')
{
hexstring.append("1101");
}
else if (Hex2.charAt(x) == 'E')
{
hexstring.append("1110");
}
else if (Hex2.charAt(x) == 'F')
{
hexstring.append("1111");
}
else if (Hex2.charAt(x) == '0')
{
hexstring.append("0000");
}
else if (Hex2.charAt(x) == '1')
{
hexstring.append("0001");
}
else if (Hex2.charAt(x) == '2')
{
hexstring.append("0010");
}
else if (Hex2.charAt(x) == '3')
{
hexstring.append("0011");
}
else if (Hex2.charAt(x) == '4')
{
hexstring.append("0100");
}
else if (Hex2.charAt(x) == '5')
{
hexstring.append("0101");
}
else if (Hex2.charAt(x) == '6')
{
hexstring.append("0110");
}
else if (Hex2.charAt(x) == '7')
{
hexstring.append("0111");
}
else if (Hex2.charAt(x) == '8')
{
hexstring.append("1000");
}
else if (Hex2.charAt(x) == '9')
{
hexstring.append("1001");
}
else
{
System.out.println("error at char" + x );
}
}
System.out.println("Hex To Decimal is " + hexstring.toString());
String Hex2=“ABCDEF123”;
System.out.println(“NEWLOOPTEST”);
StringBuilder hexstring=新的StringBuilder();
对于(int x=0;x哦,这是我的疏忽。刚刚修复了它,但它没有修复我的问题。我仍然得到“101010111100110111111189”作为我的结果。我应该得到10101011110011011111111100010010000011。谢谢你!你是一个美丽的人。这很有意义,它点击了。有时事情是多么有趣。非常感谢你,帮了我很多忙headache@vmina确保你修复了另一篇文章指出的二进制值。我刚刚将答案更新为ref也选择这个。