我需要将符号转换为位,以便每2个符号= 1个字节= 8位。
例如,如果用户输入为RR
,则结果应为00001100
。 (只是一个例子)
答案 0 :(得分:2)
我无法理解你。为什么RR应该是00001100?在十六进制1100中代表字符'C'。
答案 1 :(得分:0)
所以,如果我理解你的问题,那么有两种方法可以解决:简单或困难的方式。
易:
示例:
SortedMap<Character, String>
lo_binary = new TreeMap<Character, String>();
lo_binary.put('0', "0000");
lo_binary.put('1', "0001");
lo_binary.put('2', "0010");
lo_binary.put('3', "0011");
lo_binary.put('4', "0100");
lo_binary.put('5', "0101");
lo_binary.put('6', "0110");
lo_binary.put('7', "0111");
lo_binary.put('8', "1000");
lo_binary.put('9', "1001");
lo_binary.put('A', "1010");
lo_binary.put('B', "1011");
lo_binary.put('C', "1100");
lo_binary.put('D', "1101");
lo_binary.put('E', "1110");
lo_binary.put('F', "1111");
将结果存储到字符串
中String ls_symbols =“AA”; String ls_result =“”;
for(int ln = 0; ln&lt; ls_symbols.lenght(); ln ++){ ls_result + = lo_binary.get(ls_symbols.charAt(ln)); }
的System.out.println(ls_result); // AA - &gt; 10101010
硬:
示例:
//你有文字A.这个文字用二进制表示值1010.你有//使用运算符&gt;&gt;&gt;和&amp;将二进制值更改为布尔值
1010
boolean = (1010 & 1000) == 1000 // (1000 = represents 0x80)
boolean = true (1);
1010 >>> 0100
boolean = (0100 & 1000) == 0000
boolean = false (0);
0100 >>> 1000
boolean = (1000 & 1000) == 1000
boolean = true (1);
1000 >>> 0000
boolean = (0000 & 1000) == 0000
boolean = false (0);
答案 2 :(得分:0)
你的问题很混乱,因为你谈到十六进制,然后显示二进制数。无论如何,也许这会有所帮助......这会将输入转换为十六进制。也许你可以用它来准确地计算你需要的东西(这对我来说并不是那么清楚)。
import java.math.BigInteger;
public class MyTest {
public static void main(String[] args) {
String input = "RR";
System.out.println(toHex(input));
}
public static String toHex(String arg) {
return String.format("%x", new BigInteger(1, arg.getBytes()));
}
}