【发布时间】:2012-10-09 13:49:04
【问题描述】:
我正在编写一个可以转换多个事物的程序,但我需要有关二进制转换的帮助。我有我的文本到二进制工作的代码,但我不确定二进制到文本。这是触发转换的按钮的代码:
String code = jTextArea5.getText();
if (code == null) {
System.out.println(jTextArea1.getText( ));
String writing = jTextArea1.getText();
byte[] bytes = writing.getBytes();
StringBuilder binary = new StringBuilder();
for (byte b : bytes) {
int val = b;
for (int i = 0; i < 8; i++){
binary.append((val & 128) == 0 ? 0 : 1);
val <<= 1;
}
binary.append(' ');
}
jTextArea5.setText("" + binary);
}
else
{
System.out.println(jTextArea1.getText( ));
String binary = jTextArea1.getText();
int ascii = Integer.parseInt(binary, 2);
char character = (char)ascii;
jTextArea5.setText("" + character);
}
如果有人知道我可以如何修复此代码以使其正常工作,那就太好了。谢谢!
注意 - 下面的这一点是独立工作的,只是不与任何将 jTextArea5 中的二进制转换为 jTextArea1 中的文本的努力结合使用。
System.out.println(jTextArea1.getText( ));
String writing = jTextArea1.getText();
byte[] bytes = writing.getBytes();
StringBuilder binary = new StringBuilder();
for (byte b : bytes) {
int val = b;
for (int i = 0; i < 8; i++){
binary.append((val & 128) == 0 ? 0 : 1);
val <<= 1;
}
binary.append(' ');
}
jTextArea5.setText("" + binary);
【问题讨论】:
-
你能举一个二进制输入的例子并解释它的输出文本应该是什么吗?
-
如果我在 jTextArea5 中输入 '01110100 01100101 01110011 01110100',我应该在 jTextArea1 中得到 'test'。反之亦然。
-
你需要将它分成 8 个块。你可以使用 StringTokenizer 来做到这一点
-
我不知道该怎么做,你能详细说明一下吗?