ASCII码是机器里处理字符的代码,在汇编中是以16进制显示,机器内部则变为二进制处理。
原理是从文件中一个字节一个字节的读取出来存储为无符号字符型,然后以16进制输出下面给一个C语言实现的二进制方式显示文件内容
#include <stdio.h>
typedef unsigned char BYTE
void ShowBinary(char *fname)
{
FILE *fp,*fp_out
BYTE buf[16] // 16个字节的缓冲区
int i
if( (fp = fopen(fname,"rb")) != NULL &&(fp_out = fopen("binary_res.txt","w")) != NULL)
{
while( !feof(fp) )
{
fread(&buf,sizeof(buf),1,fp)
for(i=0i<sizeof(buf)i++)
{
if(buf[i] <= 0xF)
fprintf(fp_out,"0%X ",buf[i]) // 转化为16进制输出
else
fprintf(fp_out,"%X ",buf[i])
}
fprintf(fp_out,"\t%s\n",buf)
}
fclose(fp)
fclose(fp_out)
}
}
int main()
{
ShowBinary("readme.txt")
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)