c语言汉字的ascii,C语言中两位ASCII码可以表示汉字
********************************************************
现在开始分析:
资料一说:
“206 210 176 174 214 236 187 219 ” 是 ASCII码 , 编辑成中文是“我爱朱慧”。
写成代码:
#include
int main(void)
{
printf("%c%c%c%c%c%c%c%c",206,210,176,174,214,236,187,219);
printf("
");
return 0;
}
运行结果:
看到这里,好像明白了。
汉字是双字节,且两个数字可以 编码一个汉字。
总结下就是:
206+210=我
176+174=爱
214+236=朱
187+219=慧
呵呵,到这里就没必要再深究啦。
可是,突发奇想,想找到用哪两个数字可以组合出“你”字?
想搞出“我爱你”编码!嘿嘿。
于是,我进行了大量测试。没办法,不是很懂这个,只好用循环来做啦。
编写代码如下。
测试发现129到247有编码汉字,其余范围无法编码成汉字。
测试代码一:
#include
int main(void)
{
int i;
for(i=129;i<=247;i++)
printf("%d+%d=%c%c",i,i,i,i);
printf("
");
return 0;
}
运行结果:
测试代码二:
#include
int main(void)
{
int i;
for(i=129;i<=247;i++)
printf("%d+%d=%c%c",i,i+1,i,i+1);
printf("
");
return 0;
}
运行结果:
测试代码三:
#include
int main(void)
{
int i;
for(i=129;i<=247;i++)
printf("%d+%d=%c%c",i,i+2,i,i+2);
printf("
");
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=上
找了半天都没找到“你”,汗,真的累了。
又百度,看看有没有好的其他便捷的方法。
搜索了半天,终于找到了资料二。
*****************************************************************************
题目:
C语言中两位ASCII码可以表示汉字(如202,214表示手)请问两位ASCII怎么与GB2312中的区位码相对应
“啊”是国标码中的第一个是1601,用ASCII码怎么表示它
答案:
#includeint main(void)
{
char s[]="啊";//汉字在C/C++中是用2个字节表示的,而对应的ASCII码则是两个负数。
char m[3];
printf("%d %d
",s[0],s[1]); /*注释 s[0]=-80,s[1]=-95 注释*/
m[0]=-80;
m[1]=-95;
m[2]=0;
puts(m);//两个字节连起来凑成一个汉字。
}
运行结果:
*********************************************************************************************************
于是,我模仿资料二,找出汉字”你“的编码。
编写下列代码:
#include
int main(void)
{
char s[]="你";//汉字在C/C++中是用2个字节表示的,而对应的ASCII码则是两个负数。
char m[3];
printf("%d %d
",s[0],s[1]);
m[0]=-60;
m[1]=-29;
m[2]=0;
puts(m);//两个字节连起来凑成一个汉字。
return 0;
}
运行结果:
再修改代码:
#include
int main(void)
{
char s[]="你";//汉字在C/C++中是用2个字节表示的,而对应的ASCII码则是两个负数。
char m[3];
printf("%c%c
",s[0],s[1]);
m[0]=-60;
m[1]=-29;
m[2]=0;
puts(m);//两个字节连起来凑成一个汉字。
return 0;
}
运行结果:
好了,大功告成了!哈哈,终于搞出来了。
最终完善代码:
方法一:
#include
int main()
{
int i;
printf("%c%c%c%c%c%c
",206,210,176,174,-60,-29);
return 0;
}
感谢zhykin前辈提供的第二种方法:
#include
intmain()
{inti;
printf("%c%c%c%c%c%c",206,210,176,174,196,227);return 0;
}
运行结果:
今天上博客,发现犯了低级错误,很抱歉,手误,把I写成了L。
还有很感谢各位前辈的指点和教诲,在下定当虚心努力改进。
感谢zhykin前辈的指教,一语惊醒梦中人,使我对这个编码了解的更深了。
这里引用“zhykin”前辈的话总结下:
都是字符256余数的关系,“我”可以表示成206,210,也可以表示成-50,-46;同理“你”也可以是196,227。
“我”可以用206,210表示也可以用-50,-46表示。
“你”可以用196,227表示也可以用-60,-29表示.
再次对zhykin前辈表示衷心的感谢!
汗,刚一好友提醒了下,再次发现问题,原来以上都是我的误解,对此表示抱歉。
这原来是GBK编码。
GBK汉字编码表:
比如:“命”的GBK编码为:0xC3,0xFC
证明代码:
#include
intmain()
{inti;
printf("%c%c",0xC3,0xFC);return 0;
}
运行结果如下:
在下学艺不精,对此误导了大家,造成错误影响深感抱歉!
在此公开表示道歉!
最后奉上一个软件小工具,可以定制你的专属表白代码
c语言汉字的ascii,C语言中两位ASCII码可以表示汉字相关推荐
- C语言:输入一个浮点数,保留两位小数,对第三位小数四舍五入
思路:定义一个float类型的变量,从键盘上获取一个浮点数,将其乘以100再加0.5(这里加0.5是进行四舍五入)之后类型转换为整型,最后除以100.0(这里需要注意除数100得为一个小数,否则两个整 ...
- C语言printf格式化打印--double类型变量保留两位小数
使用printf()格式化打印: 需要打印输出的变量类型为double,scanf()和printf()均使用占位符%lf: #include <stdio.h> #include < ...
- MIT副教授赵宇飞团队登数学四大顶刊,华人作者中两位是本科生,最小的是00后...
点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 梦晨 萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI 你 ...
- 羽毛球双打比赛中两位运动员谁来发球以及如何换位?
例如: A和B对C和D的双打比赛. A和B赢了挑边并选择了发球.A发球C接发球.A为首先发球员,而C则为首先接发球员. 只有发球方在得分时发球方两位运动员才交换位置,由原发球员继续发球.除此以外,运动 ...
- c语言输出不同字体的汉字,【】c语言中输出汉字的编码
[]c语言中输出汉字的编码 (2012-03-25 22:10:04) 标签: c语言 汉字编码 杂谈 分类: C语言 C语言中,我们用整数输出字符得到的就是该字符的ASII码,如用整数输出a,得到9 ...
- 将汉字保存在C语言字符中
其实在C语言中可以保存汉字,但是这种方式不作为推荐方法使用,这里只是介绍一个小技巧. #include<stdio.h> void main() { char x[] ="你好& ...
- C语言在读取txt类型文件中的汉字字符串出现乱码的解决办法
题目 C语言在读取txt类型文件中的汉字字符串出现乱码的解决办法 以下是本篇文章正文内容,欢迎朋友们进行指正,一起探讨,共同进步.--来自考研路上的lwj 一.前言 当我们在练习文件这一章节时,因为需 ...
- python中的语言特性_python自测——语言特性
语言特性 1.谈谈对 Python 和其他语言的区别 答:Python 是一门语法简洁优美,功能强大无比,应用领域非常广泛,具有强大完备的第三方库,他是一门强类型的可移植.可扩展,可嵌入的解释型编程语 ...
- 初学者宝典:C语言入门基础知识大全(中)
04 常量 在程序运行中,其值不能被改变的量称为常量.常量有5种类型:整型常量.实型常量.字符常量.字符串常量和符号常量. 4.1 数值转换 - 数值的四种表现形式: ①:二进制:所有数字由0,1构成 ...
最新文章
- Oracle与Mysql主键、索引及分页的区别小结
- hdu1753大明A+B
- Rhel7 Ldap为本地用户认证方式,设置域、服务器位置和下载key
- HTML基础第六讲---表格
- Leetcode每日必刷题库第5题,如何实现最长回文子串?
- ultraedit中换行键的替换
- Request_获取ServletContext
- java输入数据插入if_java编程,从键盘录入10个整数数据,将每次录入的数据按从小到大的顺序插入到数组中。...
- gsm模块网站服务器,gsm模块是什么_gsm模块工作原理_gsm模块的应用
- 【OpenCV 例程200篇】55. 可分离卷积核
- 先收藏!关于Java类、接口、枚举的知识点大汇总
- GWT HTML editor
- Django链接Mysql 8.0 出现错误(1045:Access denied for user ‘root‘@‘localhost‘ (using password: NO) 的一种解决方法
- Silverlight 游戏开发小技巧:扇形排列元素
- 软件测试国赛考试文档,GZ-2019026 软件测试赛项规程-2019年国赛-高职组 - 图文
- Django中的views
- 启用计算机的快捷键,电脑开机启动项选择快捷键大全
- HDOJ4699 Editor 栈
- 简单学习OSM(OpenStreetMap)文件格式的最基础结构
- 执行git reset --hard后文件的恢复