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

ASCII编码表

[复制链接]
跳转到指定楼层
楼主
发表于 2014-3-3 23:16:11 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
20啊哈币
本帖最后由 李掌柜 于 2014-3-3 23:27 编辑

用C语言打印一张ASCII编码表,要求有:字符,十进制,八进制.
附加:打印有二进制加分,


最佳答案

查看完整内容

嘎嘎,我要积分
沙发
发表于 2014-3-3 23:16:12 | 只看该作者
winkill 发表于 2014-4-19 22:17
#include//ASCII代码三进制打印输出By WinKill
#include

嘎嘎,我要积分
板凳
发表于 2014-3-4 03:00:44 | 只看该作者
ASCII表里有些字符打印效果不是统一的

点评

代码贴出来,实现了就结贴~~  发表于 2014-3-4 17:55
地板
发表于 2014-3-4 09:01:30 | 只看该作者
rosynirvana 发表于 2014-3-4 03:00
ASCII表里有些字符打印效果不是统一的

我想知道为什么打印128后面的字符都是“?”

点评

127个差不多就够了~~  发表于 2014-3-4 17:57
2的八次方-1.  发表于 2014-3-4 12:44
5#
发表于 2014-3-4 12:45:37 | 只看该作者
4399APPLE 发表于 2014-3-4 09:01
我想知道为什么打印128后面的字符都是“?”

2的八次方不减一。。
6#
发表于 2014-3-4 13:00:18 | 只看该作者
4399APPLE 发表于 2014-3-4 09:01
我想知道为什么打印128后面的字符都是“?”

那些是不可打印的字符
7#
发表于 2014-4-19 22:17:42 | 只看该作者
#include<stdio.h>//ASCII代码三进制打印输出By WinKill
#include<windows.h>


void to_binary(unsigned long n);
int s[9],bin_n=0;
int main(void)

{
        system("color 30");
        unsigned long pn;
        printf("序号   图案    八进制    十六进制       二进制");
        for(pn=1;pn<=255;pn++)
        {
               
                if(pn%1==0)
                printf("\n");
                printf("[%d]\t%c\t %#o\t   %#x  ",pn,pn,pn,pn);
                to_binary(pn);
        }
        printf("\n");

        getch();
}


void to_binary(unsigned long n)
{
        int r,pn;
     bin_n=0;
       
        while(n>=2)
         {
         r=n % 2;
         n/=2;
        s[bin_n]=r;
        bin_n++;
        }
        r=n % 2;
        s[bin_n]=r;
printf("");
for(pn=9;pn>=0;pn--)
{
        printf("%d",s[pn]);
}


}
8#
发表于 2014-4-19 22:30:28 | 只看该作者
为了好看,所有的二进制都设置为十位字符显示。还是无法显示127之后的字符。。。。前面的高手说了,那是不可打印的。。。。我暂时也没有找到办法,另附一张全图

点评

把代码页改成437就可以了~~  发表于 2014-4-20 00:13
9#
 楼主| 发表于 2014-4-19 23:57:31 | 只看该作者
winkill 发表于 2014-4-19 22:30
为了好看,所有的二进制都设置为十位字符显示。还是无法显示127之后的字符。。。。前面的高手说了,那是不 ...

介个是因为代码页的关系,win系统中文版默认的代码页是936  
10#
 楼主| 发表于 2014-4-20 00:20:19 | 只看该作者
4399APPLE 发表于 2014-3-4 09:01
我想知道为什么打印128后面的字符都是“?”

介个是代码页问题,我有一个很简单的解决方法,就是更改代码页就可以了~~
一行代码搞定:
  1. system("chcp 437");
复制代码
11#
发表于 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
12#
 楼主| 发表于 2014-4-20 03:34:31 | 只看该作者
rosynirvana 发表于 2014-4-20 01:19
你们在说什么啊,ascii字符总共就128个,后面的本来就不在ascii表里
默认情况下128以后打印出?是因为GBK( ...

介个,当然是有关系的啦~~!你所说滴0~127是ASCII是7位码的一个版本,也就是标准版,
ASCII还有一个加强版的版本,就是8位码,128~255 ,介个就是扩展版,,
13#
发表于 2014-4-20 09:54:55 | 只看该作者
加上那行代码,效果果然不错,哈哈
14#
发表于 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上搞出来的
如果你想让人打印扩展后的字符集,去改个标题不就可以了
15#
 楼主| 发表于 2014-4-20 17:08:50 | 只看该作者
rosynirvana 发表于 2014-4-20 11:14
ascii extended是个俗称而已
ascii = American standard code for information interchanger, 那么美国 ...

C语言那多版本,又有谁是真的按所谓的标准的?
什么K&R C
ANSI C
C89标准
C99标准
C11标准
MS C等等,,,
这些那个算是标准?
还不是扩展,加强了C语言的能力?让C语言更强大,,,
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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