文本文件和二进制文件的区别和联系


      最近使用MATLAB将文本文件转换为二进制文件时遇到了一些麻烦,回头补了补当年学的文件存储,对计算机中文件存储理解更深刻了,在这里分享一下。

文件类型

      在理解文本文件和二进制之间的区别和联系之前,需要知道文件类型、ASCII码这些预备知识。

      文件类型,也被称为文件格式,是计算机对数据的编码方式,不同格式的文件使用不同的编码方式存储数据。我们平时遇到的文件有文本文件、二进制文件等不同格式,它们采用不同的方式存储数据。

      文件格式和文件的后缀名是两回事,后缀名的主要作用是给用户做备注或者告知操作系统在默认情况下用什么软件打开,后缀名与文件的具体编码没有关系,改变后缀名并不会改变文件格式,例如把后缀名为.mp4的文件改为.txt,再用mp4播放器打开,同样会正常打开视频。

      文本文件的后缀名一般为.txt,二进制文件的后缀名为.bin,若把文本文件的后缀名.txt改为.bin,然后使用打开二进制文件的软件打开,会出现乱码,这是因为文本文件存储的是用ASCII码编码后的数据,使用打开二进制文件的软件打开,相当于用的该软件的解码方式解码用ASCII码编码的数据,编码和解码不匹配,自然会出现乱码的情况了。

ASCII码

      计算机只能存储0和1,也就是说只能存储二进制数字,若我们打开记事本写入a这个字母,它在计算机中如何存储的呢?就要用到ASCII码了。
在这里插入图片描述
     上表为ASCII码表,ACSII码使用指定的8位二进制组合来表示128个可能的字符(最高位为0,主要用于奇偶检验),存储记事本的数据时,记事本的每一个字符都会被计算机使用ACSII码编码,转换为二进制,然后存储到计算机中,如上表所示,字符a对应的ACSII值为97,97的二进制为01100001,因此计算机存储的数据为01100001,使用Binary Viewer(查看二进制的软件)查看,果然是01100001,验证了所述内容。

在这里插入图片描述

文本文件和二进制文件

     由上文我们知道,文本文件存储数据时是将值作为字符后存入其字符编码的二进制,文本文件用“字符”作为单位来表示和存储数据,比如对于1这个值,文本文件会将其看做字符‘1’。然后保存其ASCII编码值,这样在物理上就是00110001这个二进制值;记事本打开一个文本文件,首先读取文件物理上所对应的二进制比特流,然后按照ASCII形式来解释这个流,接下来,它8个比特8个比特地来解释这个文件流,最后将解释结果显示出来。

     二进制文件格式存储数据时直接保存该值的二进制值,存储5678时,文本文件格式存储为:00110101 00110110 00110111 00111000(存的是5 6 7 8的四个字符对应的ASCII编码的二进制,占四个字节);二进制文件格式存储为:00010110 00101110(存的是5678的二进制),占两个字节。

     如果程序本来就是按字符保存的,也就是char ch=‘1’,则二进制保存后值就是其ASCII码,因为该变量的二进制本来就是其ASCII码,此时文本文件和二进制文件存储没有区别。

程序

使用MATLAB编程,程序如下:

在这里插入图片描述

在这里插入图片描述

      test.txt是6*16个bit,该文件是文本文件(.txt文件),上述程序的作用是将该数据转为二进制文件(.bin文件)存储。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值