2

我现在找了大约一个小时,但找不到针对我的问题的任何建议。我想做的是取一串 0 和 1 并操作一个符合给定字符串模式的字符。例如:

    char c = 'b'
    String s = "00000000 01100001";

现在我想操作 c 中的位,使它们与 s 中指定的位模式相匹配。结果 c 将被打印为 'a' (如果我不是完全错误的话)。任何帮助表示赞赏!

4

3 回答 3

1

要将二进制字符串转换为整数,请使用 parseInt,第二个参数为 2。

int temp = Integer.parseInt("01100001", 2);

您可以使用二元运算符 (&,|,^) 进行修改,但如果您真正想要的只是分配一个变量,则可以使用强制转换来完成。

char c = 'c';    
System.out.println((char)(c&temp));

System.out.println((char)temp);
于 2012-12-17T22:05:08.253 回答
1

你可以做

char a = (char) Integer.parseInt("0000000001100001", 2);
于 2012-12-17T22:00:43.613 回答
0

怎么样:

      String s = "00000000 01100001";
      String[] w = s.split(" ");
      char c = (char)(Integer.parseInt(w[0], 2) * 256 + Integer.parseInt(w[1], 2));

这允许省略每个字节的前导零。如果您知道它们在那里,您可以替换字符串中的空格并使用单个parseInt()调用:

      char c = (char)Integer.parseInt(s.replace(" ", ""), 2);
于 2012-12-17T22:00:34.223 回答