如何使用C语言将一个二进制的文件转换为对应的字符文件,我的想法是二进制——ASCII--字符,谢谢大家了。
答案:2 悬赏:70 手机版
解决时间 2021-03-21 23:33
- 提问者网友:遮云壑
- 2021-03-21 15:05
如何使用C语言将一个二进制的文件转换为对应的字符文件,我的想法是二进制——ASCII--字符,谢谢大家了。
最佳答案
- 五星知识达人网友:愁杀梦里人
- 2021-03-21 16:23
ascii字符总共128个,有相当一部分的是控制字符,不可显示,如回车,你怎么表示?那么NULL呢?
那另外没有标准规定的128个呢?每个8位字节最大表示范围为256个.
linux环境下od命令可能有你想要的结果.如: od -c a.out
结果节选(第一列为偏移):
0015400 244 206 004 \b F 001 \0 \0 022 \0 \r \0 240 003 \0 \0
0015420 020 205 004 \b \0 \0 \0 \0 022 \0 \v \0 \0 c r t
那另外没有标准规定的128个呢?每个8位字节最大表示范围为256个.
linux环境下od命令可能有你想要的结果.如: od -c a.out
结果节选(第一列为偏移):
0015400 244 206 004 \b F 001 \0 \0 022 \0 \r \0 240 003 \0 \0
0015420 020 205 004 \b \0 \0 \0 \0 022 \0 \v \0 \0 c r t
全部回答
- 1楼网友:三千妖杀
- 2021-03-21 16:43
ascii字符值范围是0x00到0x7f。因为有不可见和键盘不好拍的字符。所以你可用整型数输入。
unsigned char a[100],b[100];
unsigned char x,y,z;
scanf("%d",&a[i]);
if (a[i] > 0x7f || a[i] < 0) 重输;
加减运算 就用算数表达式。例如
y = a[1]+a[2];
b[2] = a[1] + a[2] - a[3];
unsigned char 就是8bit无符号整数。
加减运算后很可能超界,即大于0x7f或小于0。
加减运算后的字符很可能是不可打印字符,或“看不见”的字符。
所以你的题目有问题。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯