我现在找了大约一个小时,但找不到针对我的问题的任何建议。我想做的是取一串 0 和 1 并操作一个符合给定字符串模式的字符。例如:
char c = 'b'
String s = "00000000 01100001";
现在我想操作 c 中的位,使它们与 s 中指定的位模式相匹配。结果 c 将被打印为 'a' (如果我不是完全错误的话)。任何帮助表示赞赏!
我现在找了大约一个小时,但找不到针对我的问题的任何建议。我想做的是取一串 0 和 1 并操作一个符合给定字符串模式的字符。例如:
char c = 'b'
String s = "00000000 01100001";
现在我想操作 c 中的位,使它们与 s 中指定的位模式相匹配。结果 c 将被打印为 'a' (如果我不是完全错误的话)。任何帮助表示赞赏!
要将二进制字符串转换为整数,请使用 parseInt,第二个参数为 2。
int temp = Integer.parseInt("01100001", 2);
您可以使用二元运算符 (&,|,^) 进行修改,但如果您真正想要的只是分配一个变量,则可以使用强制转换来完成。
char c = 'c';
System.out.println((char)(c&temp));
System.out.println((char)temp);
你可以做
char a = (char) Integer.parseInt("0000000001100001", 2);
怎么样:
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);