如何把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
传入二进制字符串,翻译成英语句子并返回。
二进制字符串是以空格分隔的。
思路:
(1)把字符串转化为数组;
(2)把数组中的二进制转化为十进制;
(3)把数组中的十进制数字转化为字母;
(4)把数组转化为字符串;
知识点
(1)String.split()方法将一个
String
对象分割成字符串数组,通过
将字符串分成子串;
(2)parseInt(string,num) num代表num进制,这个方法可以把任何进制的数转化为十进制;
相应的,a.toString(num),这个方法可以把十进制转化为任何进制的数;
(3)String.fromCharCode()方法返回使用指定的Unicode值序列创建的字符串。
代码:
1 function binaryAgent(str) { 2 var arr=str.split(\' \'); 3 for(var i=0;i<arr.length;i++){ 4 arr[i]=parseInt(arr[i],2); 5 arr[i]=String.fromCharCode(arr[i]); 6 } 7 str=arr.join(\'\'); 8 return str; 9 } 10 11 binaryAgent("01000001 01110010 01100101 01101110 00100111 01110100 00100000 01100010 01101111 01101110 01100110 01101001 01110010 01100101 01110011 00100000 01100110 01110101 01101110 00100001 00111111");
以上是关于如何把String转换成二进制的Binary String的主要内容,如果未能解决你的问题,请参考以下文章