C语言unsigned char、二进制问题
来源:百度知道 编辑:UC知道 时间:2024/07/06 12:05:29
例:将一个二进制文件的内容显示在屏幕上:
#include <stdio.h>
main(int argc, char *argv[])
{
unsigned char ch;
int i;
FILE *fp;
i=0;
if ((fp =fopen(argv[1], "rb"))==NULL)
{
fprintf(stderr, "cannot open this file. \n");
exit(0);
}
while(!feof(fp))
{
if (i%30==0)
printf("\n");
ch=fgetc(fp);
printf("%02x", ch);
i++;
}
}
想请教下各位高手,为什么要用unsigned char 类型来表示二进制数呢?为什么不用int?
是不是因为要节省存储空间?
谢谢谢谢谢了!!!!!
注:书上就是这么写的,而且运行正确!!!
#include <stdio.h>
main(int argc, char *argv[])
{
unsigned char ch;
int i;
FILE *fp;
i=0;
if ((fp =fopen(argv[1], "rb"))==NULL)
{
fprintf(stderr, "cannot open this file. \n");
exit(0);
}
while(!feof(fp))
{
if (i%30==0)
printf("\n");
ch=fgetc(fp);
printf("%02x", ch);
i++;
}
}
想请教下各位高手,为什么要用unsigned char 类型来表示二进制数呢?为什么不用int?
是不是因为要节省存储空间?
谢谢谢谢谢了!!!!!
注:书上就是这么写的,而且运行正确!!!
你的问题就不对,代码中有错误的,unsigned char应该改成 int
因为fgetc是这么声明的:
int fgetc(FILE *stream);
所以……
用int也可以, 节省这3字节有啥用, 这个就是编程的喜欢怎么写就怎么写了, 反正怎么写又没多少差别的
用 unsigned char是可以的, fgetc的声明虽然是用int ,其实就是个char, 多的只是为了表示错误状况,可以不搭理
C语言中*(((unsigned char*)&result))是什么意思
在C语言中unsigned的意义
C语言中:srand((unsigned)time(&t));是什么意思
在C语言中,unsigned char是什么类型?
C语言什么时候会用到short int,unsigned int还有long int呢
(C语言)unsigned long类型变量输出时,格式转换说明符应如何定义?
C语言中的强制转换问题,为什么unsigned short dd=5392强制转换成unsigned char的结果是16呢?
这是一个关于C语言的问题,赋值问题,如果unsigned int 是65535,那么int是多少
大家好,我想问一下,C语言中int,unsigned int,short int,double等,这些怎么区别,什么时候用哪个呀
unsigned char