在看CSAPP的时候,有提到文本文件及二进制文件,书中介绍太少所以参考了一些资料,以下为个人理解的两者区别。
文本文件属于二进制文件,区别在于读取两者的规则不同。文本文件与二进制文件物理上的存储方式并无不同,都是二进制的。
比如某文件中内容是:
01000001_01000010_01000011_01000100(下划线_为增加可读性)
这是一个二进制文件。
当我们用ASCII码表去解读它的时候,可以得到:
ABCD
这时我们说它是文本文件。
所以,文本文件 = 二进制文件 + 编码规则
无论针对定长的编码方式(如ASCII),还是变长的编码方式(如UTF-8),文本文件都是在不同规则下对二进制文件的解读。同样扩展到图片的存取,信息的通讯,都是信息加上各种人为规定的解读方式。
<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>