搜索
查看: 3164|回复: 35
打印 上一主题 下一主题

ASCII编码表

[复制链接]
楼主
发表于 2014-3-4 03:00:44 | 显示全部楼层
ASCII表里有些字符打印效果不是统一的

点评

代码贴出来,实现了就结贴~~  发表于 2014-3-4 17:55
沙发
发表于 2014-3-4 13:00:18 | 显示全部楼层
4399APPLE 发表于 2014-3-4 09:01
我想知道为什么打印128后面的字符都是“?”

那些是不可打印的字符
板凳
发表于 2014-4-20 01:19:25 | 显示全部楼层
本帖最后由 rosynirvana 于 2014-4-20 01:26 编辑

你们在说什么啊,ascii字符总共就128个,后面的本来就不在ascii表里
默认情况下128以后打印出?是因为GBK(在windows里也称code page 936)里那些数字没有映射过去的字符
改成437能显示是因为437字符集(MS-DOS用的ascii扩展字符集)有那个对应的字符

这些都和ascii没关系,ascii定义的只有0-127
地板
发表于 2014-4-20 11:14:58 | 显示全部楼层
本帖最后由 rosynirvana 于 2014-4-20 11:20 编辑
李掌柜 发表于 2014-4-20 03:34
介个,当然是有关系的啦~~!你所说滴0~127是ASCII是7位码的一个版本,也就是标准版,
ASCII还有一个加强 ...

ascii extended是个俗称而已
ascii = American standard code for information interchanger, 那么美国标准化委员会批准的才能叫ascii
page 437是IBM-PC上搞出来的
如果你想让人打印扩展后的字符集,去改个标题不就可以了
5#
发表于 2014-4-20 17:20:38 | 显示全部楼层
李掌柜 发表于 2014-4-20 17:08
C语言那多版本,又有谁是真的按所谓的标准的?
什么K&R C
ANSI C

如果你是认真想讨论这个问题

K&R C和MS C都不是标准
ANSI C和C89是同一个东西的两个名字,第一个是本名,第二个是俗称(和C90是是实质相同的标准)

ANSI C、 C99和C11都是C标准,都是由标准委员会按照一定程序制定的
后来大多数编译系统也确实执行了ANSI C标准
C99和C11这两个,GNU的编译器也是费心费力去执行去实现的。微软自己搞cpp搞.Net框架于是就不管了

增加C语言能力的是有人花大精力去设计去实现的C语言库,以及操作系统的API
C语言扩展增强能力?哪些扩展?又有哪些编译器支持?这个很少见吧

如果你想说的是原有的问题,主楼你写的是打印ASCII code,后面打印的是IBM-PC的字符集,这两个并非同一个东西,混为一谈对学习没什么好处,教别人怎么说,至少要说清楚那是什么
6#
发表于 2014-4-20 17:23:16 | 显示全部楼层
哦对,还有一个”谁是按所谓标准“的是吧
gcc用-ansi -pedantic参数就能严格遵照ansi C标准
gcc也是现在最主流的C编译器
7#
发表于 2014-4-20 17:46:14 | 显示全部楼层
李掌柜 发表于 2014-4-20 17:35
主流的意思是用的人多,并不能说,它就是标准,,

它用的人多,而且,它也是准照标准的
它本身只是一个编译器,当然不是标准
8#
发表于 2014-4-20 17:53:24 | 显示全部楼层
李掌柜 发表于 2014-4-20 17:32
介个我并没有求要打印扩展,当然,有同学想把扩展的那部分,,,,
难道你不知道一个字节等于8位嘛?
...

没有哪位同学想打印扩展的部分
只有两个人不清楚ASCII字符有多少个,然后打印了两百多个出来,发现后面的显示不出来
后面那些在GBK是个表示区段的代码,没有对应的字符,所以显示不出来

一个字节也不一定是8bit,C编译环境里还专门有个宏来标示当前环境下一个字节多少bit
我也不知道你是怎么得出我不知道(通常)1byte = 8bit的
扩展ASCII码是8位,但是8位不一定是扩展ASCII
就好比ASCII,7位够了,但是由于计算机架构的原因一般是用8bit存储的
如果要说8位码 = 8位全用上,你写的那个IBM-PC字符集,虽然是8位全用上了,但它也不是通常所说的Extended ASCII
9#
发表于 2014-4-20 18:05:35 | 显示全部楼层
李掌柜 发表于 2014-4-20 18:00
这就对了嘛~有人在7位的基础上加强到8位,字符多了不叫ASCII扩展,那叫啥子??

你写的那个code page 437, 名字或者俗称能在维基百科上找到,CP437、OEM 437 PC-8、或MS-DOS Latin US
一般说的extended ASCII是ISO/IEC 8859 字符集
10#
发表于 2014-4-20 18:07:07 | 显示全部楼层
李掌柜 发表于 2014-4-20 17:57
http://bbs.ahalei.com/forum.php?mod=redirect&goto=findpost&ptid=4449&pid=37785&fromuid=981这位同学 ...

这里有人提到过eascii?
他要打印ascii字符表从128开始的字符
不存在的字符,超出规定范围的字符
11#
发表于 2014-4-20 21:36:58 | 显示全部楼层
李掌柜 发表于 2014-4-20 18:19
他问为什么是问号,当然,问号当然就是指扩展,或别的类型字符集了

问号等于扩展?
说了多少次了问号是使用的字符集没那个映射
12#
发表于 2014-4-20 21:38:56 | 显示全部楼层
李掌柜 发表于 2014-4-20 18:13
这个也算是国家地区级的字符集吧   437美国英语 它的代码页中就有扩展ASCII字符

自己用code page 437和ISO/IEC 8859比比看128开始的字符不就知道有多大差别了?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表