程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言中兩位ASCLL碼可以表示漢字

C語言中兩位ASCLL碼可以表示漢字

編輯:關於C語言

最近偶然有人問到這個相關字符編碼的問題,所以百度了下參考了這兩個資料,進行了簡單分析。

 

**********************************************************************

參考資料一:http://zhidao.baidu.com/link?url=YDoT2OLdKEElDQ86Ce_wEtKt9Nrn2yJ8TIb9JkasvaLvi8D66RRwSvxn2DkFRVM_OOnq4fCoJPA-19AmpPeypa

?“206 210 176 174 214 236 187 219 ” 是 ASCLL碼 , 編輯成中文是什麼 ???

提問者采納:


非常無語啊。。。我們是很有敬業精神的。。意為"我愛朱慧"

 

 

 

********************************************************

現在開始分析:

資料一說:

“206 210 176 174 214 236 187 219 ” 是 ASCLL碼 , 編輯成中文是“我愛朱慧”。

寫成代碼:

#include<stdio.h>
int main(void)
{
    printf("%c%c%c%c%c%c%c%c",206,210,176,174,214,236,187,219);
    printf("\n");
    return 0;
}

運行結果:

看到這裡,好像明白了。

漢字是雙字節,且兩個數字可以 編碼一個漢字。

總結下就是:

206+210=我

176+174=愛

214+236=朱

187+219=慧

呵呵,到這裡就沒必要再深究啦。

可是,突發奇想,想找到用哪兩個數字可以組合出“你”字?

想搞出“我愛你”編碼!嘿嘿。

於是,我進行了大量測試。沒辦法,不是很懂這個,只好用循環來做啦。

編寫代碼如下。

測試發現129到247有編碼漢字,其余范圍無法編碼成漢字。

測試代碼一:

 

#include<stdio.h>
int main(void)
{
    int i;
    for(i=129;i<=247;i++)
    printf("%d+%d=%c%c\t",i,i,i,i);
    printf("\n");
    return 0;
}

 

運行結果:

測試代碼二:

#include<stdio.h>
int main(void)
{
    int i;
    for(i=129;i<=247;i++)
    printf("%d+%d=%c%c\t",i,i+1,i,i+1);
    printf("\n");
    return 0;
}

運行結果:

測試代碼三:

#include<stdio.h>
int main(void)
{
    int i;
    for(i=129;i<=247;i++)
    printf("%d+%d=%c%c\t",i,i+2,i,i+2);
    printf("\n");
    return 0;
}

......

以此類推,測試了幾組代碼後總結如下:

206+210=我
176+174=愛
184+184=父
208+208=行
193+193=亮
183+183=販
198+198=破
131+131=傻
188+188=技
177+177=北
180+180=創
181+181=檔
182+182=抖
185+185=構
186+186=漢
187+187=換
191+191=靠
196+196=哪
195+195=妹
202+202=適
197+197=排
200+200=熱
214+214=種
199+199=喬
213+213=照
199+199=喬 204+204=燙
192+192=覽
180+181=吹
181+182=刀
176+177=氨
204+205=掏
206+207=蝸
192+193=懶
187+188=患
182+183=斗
185+186=購
190+191=究
191+192=坷
197+198=牌
180+181=吹
183+184=犯
193+194=諒
194+195=旅
198+199=魄
199+200=僑
203+204=頌
206+207=蝸
207+208=閒
208+209=醒
209+210=巖
176+178=安 177+179=背
178+180=泊
179+181=車
180+182=炊
183+185=飯
184+186=負
185+187=夠
186+188=杭
187+189=喚
188+190=季
190+192=糾
195+197=門
198+200=迫
199+201=巧
200+202=仁
201+203=傷
203+205=送
204+206=濤
205+207=拖
208+210=幸
210+212=以
211+213=誘
212+214=災
213+215=兆
214+216=重
215+217=蹤 176+179=俺
177+180=貝
178+181=駁
181+184=蹈
182+185=豆
183+186=泛
184+187=富
185+188=辜
186+189=航
193+196=聊
194+197=屢
195+198=悶
196+199=那
200+203=人
201+204=商
202+205=釋
203+206=宋
209+212=言
210+213=藝
211+214=又
212+215=宰
217+220=余
176+180=按
178+182=捕
179+183=撤
181+185=倒 182+186=逗
188+192=祭
195+199=們
197+201=派
200+204=忍
201+205=賞
202+206=飾
212+216=載
213+217=召
214+218=眾
177+182=倍
181+186=島
183+188=芳
214+219=舟
215+220=總
212+217=再
210+215=易
208+213=姓
207+212=顯
190+185=久
176+182=岸
180+186=春
182+188=都
183+189=方
200+206=任
201+207=上

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

找了半天都沒找到“你”,汗,真的累了。

又百度,看看有沒有好的其他便捷的方法。

搜索了半天,終於找到了資料二。

 *****************************************************************************

參考資料二:http://zhidao.baidu.com/link?url=TyO1WecgunJH_ZOeeSqX1o8O8QPxga2B7JsMrQRzWajNs7O8Nh-g-Yr3B-zzAV1vO_vDqcn6qNDVqj8DwHDH2q

 

題目:

C語言中兩位ASCLL碼可以表示漢字(如202,214表示手)請問兩位ASCLL怎麼與GB2312中的區位碼相對應

“啊”是國標碼中的第一個是1601,用ASCLL碼怎麼表示它

 


答案:

 

#include<stdio.h>int main(void)
{
char s[]="啊";//漢字在C/C++中是用2個字節表示的,而對應的ASCII碼則是兩個負數。 char m[3]; printf("%d %d\n",s[0],s[1]); /*注釋 s[0]=-80,s[1]=-95 注釋*/ m[0]=-80; m[1]=-95; m[2]=0; puts(m);//兩個字節連起來湊成一個漢字。 }

 

運行結果:

 

 

 *********************************************************************************************************

於是,我模仿資料二,找出漢字”你“的編碼。

編寫下列代碼:

#include<stdio.h>
int main(void)
{
    char s[]="你";//漢字在C/C++中是用2個字節表示的,而對應的ASCII碼則是兩個負數。
    char m[3];
    printf("%d %d\n",s[0],s[1]);
    m[0]=-60;
    m[1]=-29;
    m[2]=0;
    puts(m);//兩個字節連起來湊成一個漢字。
    return 0;
}

運行結果:

再修改代碼:

#include<stdio.h>
int main(void)
{
    char s[]="你";//漢字在C/C++中是用2個字節表示的,而對應的ASCII碼則是兩個負數。
    char m[3];
    printf("%c%c\n",s[0],s[1]);
    m[0]=-60;
    m[1]=-29;
    m[2]=0;
    puts(m);//兩個字節連起來湊成一個漢字。
    return 0;
}

運行結果:

好了,大功告成了!哈哈,終於搞出來了。

最終完善代碼:

#include<stdio.h>
int main()
{
 int i;
 printf("%c%c%c%c%c%c\n",206,210,176,174,-60,-29);
 return 0;
}

運行結果:

 

哈哈,好了,打完收工。准備睡覺。

 

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved