我正在寻找关于这个二进制翻译问题的一些帮助。问题是:在本练习中,您将为文本翻译器编写二进制文件!
正如我们所见,每个字符都可以用8位或一个字节的字符串表示。例如,二进制字符串01000001 2 的十进制值为65 10 ,映射到字符“A”。
到目前为止我有这个,但输出是: H. CTH * 否)MO
这是我的代码:
public class Scratchpad extends ConsoleProgram
{
public void run()
{
System.out.println(binaryToText("0100100001001001"));
System.out.println(binaryToText("010000110110111101100100011001010100100001010011"));
System.out.println(binaryToText("010011100110100101100011011001010010000001001010011011110110001000100001"));
}
public String binaryToText(String binary)
{
String s2 = "";
char nextChar;
for(int i = 0; i <= binary.length()-8; i += 9) //this is a little tricky. we want [0, 7], [9, 16], etc (increment index by 9 if bytes are space-delimited)
{
nextChar = (char)Integer.parseInt(binary.substring(i, i+8), 2);
s2 += nextChar;
}
return s2;
}
public int binaryToDecimal(String binaryString)
{
int decimal = 0;
int base = 2;
for (int i = binaryString.length() - 1; i >= 0; i--) {
if (binaryString.charAt(i) == '1')
decimal += Math.pow(base,i);
}
return decimal;
}
}
答案 0 :(得分:1)
以下是解决方案:
对于每个位串,执行以下操作:
StringBuilder
)。答案 1 :(得分:0)
-finit-real=zero
-finit-integer=0