浅谈C语言中文本文件与二进制文件

C语言中,按文件中的数据组织形式来分,数据文件可分为ASCII码文件(即文本文件)和二进制文件。

文本文件在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码。

二进制文件把数据按其在内存中的存储形式存放在磁盘上,一个字节并不一定对应一个字符。


对于ASCII编码,它是单字节编码系统,使用7位或8位二进制数组合来表示128 或256 种可能的字符,标准ASCII码是使用7位,剩下的那位最高位为0。故而标准ASCII码可以表示的字符是128个,涵盖了大小写字母,数字0~9,标点符号以及特殊的控制字符。详细的可以查看ASCII的百度词条。

对于字母的处理,二者并无区别。而对于数字的处理则有不同:

比如10这个数,在ASCII编码中,把它当做两个字符即用一个字节来表示1,用另一字节来表示0,对应的编码是0011000100110000

在二进制编码中,采用的方式并不是一个字符对应一个字节,而是数据在C语言中的类型来编码,比如 是int型的10,那么就用4个字节表示( 具体int型是用4个还是2个字节表示可能会有出路,visual c++ 6.0中是用4字节表示,不管是几个,直接调用int x = sizeof(int);这个语句,最后x的值便是int型占据的字节数)若就是用四个字节表示int型的数,那么对应的编码应该是00000000_00000000_00000000_00001010(中间的_是为了便于阅读手动添加的)。四个字节可以表示的数的范围是0~65535,也就是在这之间的数都是用四个字节表示出来。

可以看到,文本文件中一个字符就是对应着一个字节,而二进制文件中,需要按照该数在程序中的数据类型来确定用几个字节来表示它。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值