二进制文件,这个再基础不过的名词,正因为它的无处不在,或许没有人会关注它背后隐含的内容。其实我也一样,在写下
这些文字之前,我也是认为二进制文件就像空气一样,平常得让人完全忽略了。 b。这两个值定义了文件是按照文本(text)还是二进制(binary)方式开发。正是这个两个值引起了我对二进制文件的兴趣,因为它们 让我想到了很多问题。 上来的,至少我是不行了。查阅了资料之后,发现答案就在自己的知识范围之内的:将文件看作是由一个一个字节(byte) 组成的, 那么文本文件中的每个字节的最高位都是0,也就是说文本文件使用了一个字节中的七位来表示所有的信息,而二进制文件则是将字 节中的所有位都用上了。这就是两者的区别; 文本文件也好,都是一连串的0和1,但是打开方式不同,对于这些0和1的处理也就不同。如果按照文本方式打开,在打开的时候会 进行translate,将每个字节转换成ASCII码,而以按照二进制方式打开的话,则不会进行任何的translate; 行编辑的最小单位是字节(byte);而对二进制文件进行编辑的话,最小单位则是位(bit),当然我们都不会直接通过手工的方式对二 进制文件进行编辑了。 ----------------2---------------
,系统对它不加解释地传给调用者,解释由调用者负责.而对字符文件,系统把他理解为单字节的ASCII或多字节的UNICODE字符串,并且 对其中的特殊字符(如回车等)加以特殊处理.所以同一个文件,可以使用不同类型的系统调用. 文本文件也叫做ASCII码文件,与以‘文本方式’打开文件不是同一个概念!文本文件存储的是ASSCII码字符,即存储在磁盘上只占用二进制的0x20--0x7e。另外,还有回车(0x0d),换行(0x0a),TAB(0x09)等,所以有可压缩的空间。 换行和回车是不同的,而且在不同的操作系统,解释也不相同。‘/n’一般会操作系统被翻译成"行的结束",即LF(Line-Feed);‘/r’会被翻译成"回车",即CR(Cariage-Return) 回车(CR)和换行(LF)符都是用来表示“下一行”的。而标准没有规定要使用哪一个。于是产生了三种不同的用法: 文本方式和二进制方式的最大区别在于文本方式对于'/n'换行符的理解不同 在linux/unix 系统上,只有一种文件类型的系统,带b字母的模式和对应的不带b字母的模式是相同的。(UNIX文本文件通常不包含Ctrl+Z和/r) EOF在Windows下是ctrl+z,linux下是ctrl+D. |
文本文件和二进制文件有什么区别?
最新推荐文章于 2023-03-13 09:34:38 发布
文本文件和二进制文件有什么区别?
2008-05-13 22:14