如何把String转换成二进制的Binary String

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何把String转换成二进制的Binary String相关的知识,希望对你有一定的参考价值。

参考技术A public static void main(String[] args)
String hex = "abef";
int i = Integer.parseInt(hex, 16);
System.out.println(hex);
String str = b2h(Integer.toBinaryString(i));
System.out.println(str);


static String[] hexStr = "0", "1", "2", "3", "4", "5", "6", "7", "8",
"9", "A", "B", "C", "D", "E", "F" ;

public static String b2h(String binary)
// 这里还可以做些判断,比如传进来的数字是否都是0和1
System.out.println(binary);
int length = binary.length();
int temp = length % 4;
// 每四位2进制数字对应一位16进制数字
// 补足4位
if (temp != 0)
for (int i = 0; i < 4 - temp; i++)
binary = "0" + binary;


// 重新计算长度
length = binary.length();
StringBuilder sb = new StringBuilder();
// 每4个二进制数为一组进行计算
for (int i = 0; i < length / 4; i++)
int num = 0;
// 将4个二进制数转成整数
for (int j = i * 4; j < i * 4 + 4; j++)
num <<= 1;// 左移
num |= (binary.charAt(j) - '0');// 或运算

// 直接找到该整数对应的16进制,这里不用switch来做
sb.append(hexStr[num]);
// 这里如果要用switch case来做,大概是这个样子
// switch(num)
// case 0:
// sb.append('0');
// break;
// case 1:
// ...
// case 15:
// sb.append('F');
// break;
//

return sb.toString();

FCC 中级算法题 Binary Agents

Binary Agents


传入二进制字符串,翻译成英语句子并返回。

二进制字符串是以空格分隔的。

以上是关于如何把String转换成二进制的Binary String的主要内容,如果未能解决你的问题,请参考以下文章

FCC 中级算法题 Binary Agents

如何将string类型的数字转换成int

java进制转换代码

String 和 16进制转换

如何把ResultSet转换成Java对象

Java中如何把图片转换成二进制流