-1 java
我有这个代码:
String hexCode = "A1E1F1";
int länge = hexCode.length ();
int i;
for (i = 0; i <= länge - 1 ; i ++) {
char pos = hexCode.charAt(i);
String binCode = Integer.toBinaryString(pos);
System.out.print ( binCode);
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我得到这个结果:
100000111000110001011100011000110110001
Run Code Online (Sandbox Code Playgroud)
我不相信是正确的.不应该是:
101000011110000111110001
Run Code Online (Sandbox Code Playgroud)
这些结果实际上是一样的吗?为什么java会给我第一个结果?
您没有将输入字符串解析为HEX表示.您将获取每个角色,获取其char值并将其转换为二进制表示.
你想要的是解析输入文本作为基数16整数
String hexCode = "A1E1F1";
int val = Integer.parseInt(hexCode, 16);
System.out.println(Integer.toBinaryString(val));
Run Code Online (Sandbox Code Playgroud)
是.Integer.toBinaryString是正确的.你的答案是pos没有任何换行符的二进制文件.
1000001
110001
1000101
110001
1000110
110001
Run Code Online (Sandbox Code Playgroud)
您期望的输出要求您解码数字值.喜欢
String binCode = Integer.toBinaryString(Character.digit(pos, 16));
Run Code Online (Sandbox Code Playgroud)
然后输出是
101011110111111
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
305 次 |
| 最近记录: |