二进制如何转为汉字 如何将一个二进制的转换为汉字?反过来又怎转?

\u4e8c\u8fdb\u5236\u600e\u4e48\u8f6c\u6362\u6210\u6c49\u5b57\u7684\uff01

1\u3001\u539f\u7406
\u4e8c\u8fdb\u5236\u8f6c\u5316\u4e3a\u6c49\u5b57\uff0c\u53ef\u4ee5\u5148\u5c06\u4e8c\u8fdb\u5236\u8f6c\u5316\u4e3a16\u8fdb\u5236\uff0c\u7136\u540e\u518d\u5229\u752816\u8fdb\u5236\u548c\u6c49\u5b57\u4e4b\u524d\u7684\u5bf9\u5e94\u5173\u7cfb\u8fdb\u884c\u8f6c\u5316\u3002
2\u3001C#\u7248\u7684\u4ee3\u7801\u5982\u4e0b
private string BinaryToChinese(string input){ StringBuilder sb=new StringBuilder();//\u5efa\u7acbstring int numOfBytes = input.Length / 8;//\u8ba1\u7b97\u5c3e\u6570 byte[] bytes = new byte[numOfBytes];//\u4e8c\u8fdb\u5236 for (int i = 0; inumOfBytes; ++i) { bytes[i] = Convert.ToByte(input.Substring(8 * i, 8), 2);//\u5bf9\u5b57\u7b26\u4e32\u8f6c\u6210\u5bf9\u5e94\u4e8c\u8fdb\u5236 } return System.Text.Encoding.Unicode.GetString(bytes);//\u89e3\u7801\u5f97\u5230\u6c49\u5b57 }

\u767e\u5ea6\u641c\u7d22 \u6c49\u5b57\u5185\u7801 \u6709\u8be6\u7ec6\u7684\u89e3\u91ca\u3002
\u8fd9\u4e2a\u65e0\u987b\u8f6c\u6362\uff0c\u53ea\u8981\u9009\u62e9\u6b63\u786e\u7684\u5b58\u50a8\u65b9\u5f0f\u5373\u53ef\u3002void * \u5c31\u662f\u4e8c\u8fdb\u5236\uff0c\u5f3a\u5236\u4e3atchar\u5c31\u662f\u6c49\u5b57\u4e86\uff0c\u6216\u8005\u4f60\u53ef\u4ee5\u5728void * \u548ctchar\u76f4\u63a5\u505a\u5185\u5b58\u62f7\u8d1dmemmove\u4e5f\u53ef\u4ee5

  1. 汉字信息交换码(国标码)
  《信息交换用汉字 编码字符集·基本集》是我国于1980年制定的国家标准 GB2312-80,代号为国标码,是国家规定的用于汉字信息处理使用的代码依据。
   GB2312-80中规定了信息交换用的6763个汉字和682个非汉字图形符号(包括几种外文字母、数字和符号)的代码。
  6763个汉字又按其 使用频度、组词能力以及用途大小分成一级常用汉字3755个和二级常用汉字3008个。
  一级汉字按拼音字母顺序排列;若遇同音字,则 按起笔的笔形顺序排列;若起笔相同,则按第二笔的笔形顺序排列,依次类推。所谓笔形顺序,就是横、竖、撇、点和折的顺序。二级汉字按 部首顺序排列。
  在此标准中,每个汉字(图形符号)采用双字节表示。每个字节只用低7位,最高位恒为1。由于低7位中有34种状态是用 于控制字符,因此,只有94(128-34=94)种状态可用于汉字编码。这样,双字节的低7位只能表示94×94=8836种状态。

编码范围

二进制数码

十进制数码

基本 ASCII 码    
00000000~01111111    
0~127    

控制字符    
00000000~00100000、01111111    
0~32、127    

可用汉字段    
00100001~01111110    
33~126 (1~94)    

扩充 ASCII 码    
10000000~11111111    
128~255    

控制字符    
10000000~10100000、11111111    
128~160、255    

GB2312-80    
10100001~11111110    
161~254 (1~94)    

  此标准的汉字编码表有94行、94列,其行号称为区号,列号称为位号。双字节中,用 高字节表示区号,低字节表示位号。非汉字图形符号置于第1~11区,一级汉字3755个且于第16~55区,二级汉字3008个置于第56~87区。
  每个图形字符的汉字交换码,均用两个字节的低7位二进制码表示。汉字国标码通常用十六进制数表示。
  例如:“中”字的区号为 54,位号为48,计算它的二进制数和十六进制数国标码。
    解:先将区、位号分别加上 32 :
      54+32=86
       48+32=80
    分别转换为二进制数:
      (86)10=01010110
      (80)10=0 1010000
  得到二进制数国标码为:
      01010110 01010000。
  最后通过 8 4 2 1 ── 二进制取位法转换成十六 进制汉字国标码为:5650。
  又如“国”字的区号为25,位号为90,用以上相同的方法得到它的国标码为:
  二进制:00111001 01111010
  十六进制:397A

----------------------------------------------------------------

基于以上原则,则

  11000100,11100011,10111010,11000011

>(1100 0100 1110 0011)2,(1011 1010 1100 0011)2

>(C4E3)16,(BAC3)16

>查表可知:C4E3>>‘你’,BAC3>>‘好’




二进制是将汉字编码,然后就可根据编码提取汉字了。
以下代码就可以实现二进制转为汉字:
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<stdlib.h>
#include<string.h>

int main()
{
char btos[3] = {'\0'};
char b[2][9] ;
char yon;
int item = 0;
int i;
int j = 0;
printf("开始执行程序(y/n) :\n");
yon = getch();
while('y' == yon||'Y' == yon){
do{
j = 0;
printf("请输入第一个二进制字符串 : ");
scanf("%s",b[0]);
for(i = 0;i < 8;i++){
if('0' != b[0] && '1' != b[0]){j = 1;
}
}
}while(8 != strlen(b[0]) || 1 == j);
do{
j = 0;
printf("请输入第二个二进制字符串 : ");
scanf("%s",b[1]);
for(i = 0;i < 8;i++){
if('0' != b[1] && '1' != b[1]){j = 1;
}
}
}while(8 != strlen(b[1]) || 1 == j);
for(i = 0;i < 2;i++){
for(j = 7;j >= 0;j--){
if('1' == b[j]){
item += pow(2,7-j);
}
}
btos = 32767&item;
item = 0;
}
printf("该汉字为:%s\n是否继续(y/n) :\n",btos);
yon = getch();
}
return 0;
}

比如“大”这个字就是下面

00000000100000000
00000000100000000
00111111111111100
00000001010000000
00000010001000000
00000100000100000
00001000000010000
00010000000001000

每个字都是这样的,屏幕显示也一样

  • C# 浜岃繘鍒瀛楃涓("00000110101010")濡備綍杞崲涓鐩稿搴姹夊瓧鎴栧瓧绗
    绛旓細涓嶨etBytes鍚屼竴鍛藉悕绌洪棿涓嬶紝杩樻湁涓狦etString鐨勬柟娉曪紝灏卞彲浠ユ妸瀛楄妭鏁扮粍杞洖瀛楃涓层
  • 灏浜岃繘鍒惰浆鎹㈡垚姹夊瓧
    绛旓細for(int i=0;i<strlen(str);i++){ out[(int)i/8]*=2;out[(int)i/8]+=(str[i]-'0');} for(int k=1;k<=128;k++){ for(i=0;i<strlen(str)/8;i++){ out[i]-=k;} printf("%s\n",out);} return 0;}杈撳嚭褰搆=127鏃惰緭鍑虹殑ILOVEYOU锛鎬庝箞鏍凤紝LZ楂樺叴鍝囷紝鍝堝搱~~...
  • 姹夊瓧鐨浜岃繘鍒舵庝箞琛ㄧず?灏辨槸0鍜1鐨勯偅绉嶃
    绛旓細涓嶇鏄姹夊瓧杩樻槸鑻辨枃锛堟垨鍏朵粬瑗挎柟鏂囧瓧锛夛紝鍦ㄨ绠楁満涓殑琛ㄧず锛岄兘鏄2杩涘埗锛屽洜涓鸿绠楁満鍙璇2杩涘埗銆浜岃繘鍒涓庢眽瀛楀尯浣嶇爜涓嶆槸涓鐮佷簨銆傚尯浣嶇爜鏄竴绉嶆眽瀛楃殑杈撳叆鏂规硶锛堜竴绉嶆眽瀛楃紪鐮佹柟妗堬級锛屾槸杈呭姪浣犲揩閫熷畾浣嶈緭鍏ユ眽瀛楃敤鐨勩
  • 澶у甯繖涓媀B鎬庝箞鎶浜岃繘鍒惰浆鎹㈡垚姹夊瓧
    绛旓細"浣"鐨刄nicode鐮 = 20320 "濂"鐨刄nicode鐮 = 22909 涓嶇煡閬58308鏄摢閲屾潵鐨 Private Sub Command1_Click()Print AscW("浣");Print AscW("濂");Print Chr(58308)End Sub 杩愯缁撴灉锛 20320 22909 闅
  • unicode鏄庝箞杞崲鎴愭眽瀛鐨?
    绛旓細杩欓噷浠xt鏂囦欢涓殑姹夊瓧涓轰緥, 浠嬬粛鏂囨湰缂栬緫鍣濡備綍鏄剧ず姹夊瓧鐨勮繃绋:1. 浜岃繘鍒(鏂囦欢,浣犲彲浠ユ妸涓涓枃浠剁悊瑙d负涓涓1+0鏋勬垚鐨勫唴瀹.涔熷彲浠ュ彨钀藉湴鐮佺紪鐮佺殑鍐呭)鈥斺2. 閫氳繃钀藉湴鐮佽瘑鍒嚭姣忎釜瀛楃(钀藉湴鐮,灏辨槸utf-8/utf-16/gbk杩欎竴绫荤紪鐮, 瀹冧滑鑳藉灏嗚繛缁殑1/0缁勬垚鐨勬暟瀛椾覆鍒囧壊(瑙g爜杩囩▼)鎴愯兘n涓皬鍧(鍧...
  • 鏈浜岃繘鍒惰浆姹夊瓧鐨勮蒋浠跺悧
    绛旓細涓囪兘瀛楃涓杞崲杞欢宸ュ叿 鐗堟湰1.2 瀹樻柟缃戠珯:www.45soft.com 鏀寔 瀛楃涓茶浆16杩涘埗,16杩涘埗杞瀛楃涓,瀛楃涓茶浆Unicode,Unicode杞瓧绗︿覆,绠浣撹浆绻佷綋(GB2312杞珿BK),绻佷綋杞畝浣(GBK杞珿B2312),绻佷綋杞珺IG5(GBK杞珺IG5),BIG5杞箒浣(BIG5杞珿BK),瀛楃涓茶浆UTF8,UTF8杞瓧绗︿覆,鍚勭鏍煎紡鍖栨搷浣,鍒犵┖鏍,鍒犲彞鍙风偣,...
  • 姹夊瓧浜岃繘鍒鐨勯棶棰 鎴戞兂鐭ラ亾鎬庝箞鎹㈢畻杩囨潵鐨!
    绛旓細杩欐槸姹夊瓧鍐呯爜銆傛瘡涓眽瀛楃殑鍐呯爜锛屾槸 16 浣浜岃繘鍒鏁帮細灏忥細D0 A1锛屼簩杩涘埗灏辨槸 1101 0000 1010 0001锛涚背锛欳3 D7锛屼簩杩涘埗灏辨槸 1100 0011 1101 0111锛涒︹1 鐢ㄨ繛缁殑绔栫嚎銆0 鐢ㄤ腑闂撮棿鏂殑绔栫嚎锛屼竴浣嶄竴鏉$殑鐢诲嚭鏉ワ紝灏辨槸妤间富缁欏嚭鐨勭敾闈
  • 璁$畻鏈轰腑鐨浜岃繘鍒鏄濡備綍琛ㄧず姹夊瓧鐨勬満鍐呯爜?
    绛旓細鏈哄唴鐮佹槸姹夊瓧鏈鍩烘湰鐨勭紪鐮侊紝涓嶇鏄粈涔堟眽瀛楃郴缁熷拰姹夊瓧杈撳叆鏂规硶锛岃緭鍏ョ殑姹夊瓧澶栫爜鍒版満鍣ㄥ唴閮ㄩ兘瑕杞崲鎴鏈哄唴鐮侊紝鎵嶈兘琚瓨鍌ㄥ拰杩涜鍚勭澶勭悊銆浜岃繘鍒鐨勭壒鎬э細1銆佸鏋滀竴涓簩杩涘埗鏁帮紙鏁村瀷锛夋暟鐨勭闆朵綅鐨勫兼槸1锛岄偅涔堣繖涓暟灏辨槸濂囨暟锛涜屽鏋滆浣嶆槸0锛岄偅涔堣繖涓暟灏辨槸鍋舵暟銆2銆佸鏋滀竴涓簩杩涘埗鏁扮殑浣庣n浣嶉兘鏄浂...
  • vb濡備綍灏姹夊瓧杞崲鎴愪簩杩涘埗
    绛旓細鏄氳繃缂栫爜鍘熺悊閫氳繃鐗瑰畾鐨勭紪鐮佹柟寮忔潵瀹炵幇鐨勶紝灏卞儚鐢佃涓婄殑鏃犵嚎鐢垫姤锛屽叾瀹炲彂閫佺殑灏辨槸浜岃繘鍒浠g爜锛屾帴鏀跺埌鐨勬牴鎹瘑鐮佹湰锛屽湪鎶婁簩杩涘埗鏁板瓧缈昏瘧鎴愭眽瀛鎴栬呭叾浠栫鍙凤紝鐜板湪姣旇緝甯歌鐨勬眽瀛楃紪鐮佹湁UTF-8锛孏B2312锛孏BK锛孏B18030锛屽彲浠ラ氳繃鐪嬬湅杩欎簺缂栫爜鏂瑰紡鐨勭爜琛紝灏辩煡閬撴瘡涓涓眽瀛楀搴旂殑浜岃繘鍒舵暟瀛楁槸浠涔堬紝缂栫爜鏂瑰紡锛屼唬琛...
  • 浜岃繘鍒舵庝箞杞崲鐨?
    绛旓細1.浜岃繘鍒杞崄杩涘埗锛氬皢浜岃繘鍒舵暟鐨勬瘡涓浣嶄笌瀵瑰簲鐨勬潈鍊肩浉涔橈紝鍐嶅皢缁撴灉鐩稿姞鍗冲彲寰楀埌瀵瑰簲鐨勫崄杩涘埗鏁般2.浜岃繘鍒惰浆鍗佸叚杩涘埗锛氬皢姣忓洓浣嶄簩杩涘埗鏁杞崲涓涓涓崄鍏繘鍒舵暟浣嶃3.浜岃繘鍒惰浆鍏繘鍒讹細灏嗘瘡涓変綅浜岃繘鍒舵暟杞崲涓轰竴涓叓杩涘埗鏁颁綅銆傚湪杩涜浜岃繘鍒惰浆鎹㈡椂锛屾垜浠彲鑳戒細閬囧埌涓浜涚壒娈婃儏鍐碉紝姣斿琛ョ爜琛ㄧず璐熸暟鍜屾诞鐐规暟...
  • 扩展阅读:汉字如何转化为二进制 ... 二进制最简单的理解 ... 二进制如何表达汉字 ... 如何用二进制表达文字 ... 二进制对照表大全 ... 二进制怎么转换为文字 ... 二进制变十进制公式 ... 二进制转换器 ... 二进制转换中文 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网