二进制转换文字
二进制转文字算法?
二进制转文字算法?
1.
原理 二进制转化为汉字,可以先将二进制转化为16进制,然后再利用16进制和汉字之前的对应关系进行转化。
2.
C#版的代码如下 private string BinaryToChinese(string input){ StringBuilder sb=new StringBuilder()//建立string int numOfBytes = input.Length / 8//计算尾数 byte[] bytes = new byte[numOfBytes]//二进制 for (int i = 0 inumOfBytes i) { bytes[i] = Convert.ToByte(input.Substring(8 * i, 8), 2)//对字符串转成对应二进制 } return System.Text.Encoding.Unicode.GetString(bytes)//解码得到汉字 }。
二进制如何转为汉字?
二进制是这么转换成汉字的
每个汉字(图形符号)采用双字节表示。每个字节只用低7位,最高位恒为1。由于低7位中有34种状态是用 于控制字符,因此,只有94(128-34=94)种状态可用于汉字编码。这样,双字节的低7位只能表示94×94=8836种状态。
每个图形字符的汉字交换码,均用两个字节的低7位二进制码表示。汉字国标码通常用十六进制数表示。
二进制如何转为汉字?
二进制是将汉字编码,然后就可根据编码提取汉字了。
以下代码就可以实现二进制转为汉字:
#includeltstdio.hgt
#includeltconio.hgt
#includeltmath.hgt
#includeltstdlib.hgt
#includeltstring.hgt
int main()
{
char btos[3] = {#39\\0#39}
char b[2][9]
char yon
int item = 0
int i
int j = 0
printf(#34开始执行程序(y/n) :\
#34)
yon = getch()
while(#39y#39 == yon||#39Y#39 == yon){
do{
j = 0
printf(#34请输入第一个二进制字符串 : #34)
scanf(#34\%s#34,b[0])
for(i = 0i lt 8i ){
if(#390#39 != b[0] ampamp #391#39 != b[0]){j = 1
}
}
}while(8 != strlen(b[0]) || 1 == j)
do{
j = 0
printf(#34请输入第二个二进制字符串 : #34)
scanf(#34\%s#34,b[1])
for(i = 0i lt 8i ){
if(#390#39 != b[1] ampamp #391#39 != b[1]){j = 1
}
}
}while(8 != strlen(b[1]) || 1 == j)
for(i = 0i lt 2i ){
for(j = 7j gt= 0j--){
if(#391#39 == b[j]){
item = pow(2,7-j)
}
}
btos = 32767ampitem
item = 0
}
printf(#34该汉字为:\%s\
是否继续(y/n) :\
#34,btos)
yon = getch()
}
return 0
}