我有一个二进制代码(比如“0100001001000011”),我将把值转换为相应的字符。
任何人都可以帮我在Java中编写第1代码吗?
答案 0 :(得分:0)
...不确定
#include<stdio.h>
#include<string.h>
typedef struct {
unsigned short b0 : 1, b1 : 1, b2 : 1, b3 : 1, b4 : 1, b5 : 1, b6 : 1, b7 : 1, b8 : 1, b9 : 1, b10 : 1, b11 : 1, b12 : 1, b13 : 1, b14 : 1, b15 : 1;
}stBit;
_Bool isBigEndian() {
union {
unsigned short a;
unsigned char b[2];
}n;
n.a = 0xFF00;
return n.b[0] == 0xFF;
}
void printStBit(stBit s) {
if (isBigEndian()) {
printf("%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d\n", s.b0, s.b1, s.b2, s.b3, s.b4, s.b5, s.b6, s.b7, s.b8, s.b9, s.b10, s.b11, s.b12, s.b13, s.b14, s.b15);
}
else {
printf("%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d\n", s.b8, s.b9, s.b10, s.b11, s.b12, s.b13, s.b14, s.b15, s.b0, s.b1, s.b2, s.b3, s.b4, s.b5, s.b6, s.b7);
}
}
int main(void) {
unsigned short n = 90;
stBit s;
memcpy(&s, &n, sizeof n);
printStBit(s);
getchar();
return 0;
}
免责声明:代码可能无法编译或工作,因为它在我的手机上被翻阅(但它有合理的可能性)
答案 1 :(得分:0)
此方法将包含二进制代码的字符串转换为String参数表示的ASCII字符串。
public static String binaryToString(String binary){
String output = "";
for (int i=0; i<binary.length(); i+=8){
String next = binary.substring(i,i+8);
int code = Integer.parseInt(next,2);
output += ((char) code);
}
return output;
}
基本上使用Integer.parseInt(String s, int radix)
将String转换为具有给定基数(或基数)的数字,然后将其转换为char
。