急问:二进制文件和文本文件的区别?
例如18
在二进制文件中是:0001 0010
在文本 文件中是:0000 0001 0000 1000
不知道我说的对不?
问题点数:20、回复次数:13Top
1 楼lbing7(向青润老大学习!!!)回复于 2005-05-18 17:48:00 得分 2
好象二进制文件是直接就是内存里面的存在形式
文本文件在读写的时候系统会自动的转换
Top
2 楼qfeng_zhao(鱼儿鱼儿满天飞)回复于 2005-05-18 17:57:47 得分 3
搂主说得对!
文本文件也称ASCII文件,在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码。例如,数5678的存储形式为:
ASC码: 00110101 00110110 00110111 00111000
↓ ↓ ↓ ↓
十进制码: 5 6 7 8 共占用4个字节。ASCII码文件可在屏幕上按字符显示, 例如源程序文件就是ASCII文件,用DOS命令TYPE可显示文件的内容。 由于是按字符显示,因此能读懂文件内容。
二进制文件是按二进制的编码方式来存放文件的。 例如, 数5678的存储形式为: 00010110 00101110只占二个字节。二进制文件虽然也可在屏幕上显示, 但其内容无法读懂。C系统在处理这些文件时,并不区分类型,都看成是字符流,按字节进行处理。 输入输出字符流的开始和结束只由程序控制而不受物理符号(如回车符)的控制。 因此也把这种文件称作“流式文件”。Top
3 楼junguo(junguo)回复于 2005-05-18 18:01:30 得分 2
是这样的!
但并不完全正确,因为文本文件对应的是ascii码,而1的ascii码应该是16进制的31,所以1保存成文本文件应该是0010 0001。
Top
4 楼csan()回复于 2005-05-18 18:08:24 得分 2
用二进制的读取方法将一个文本文件读取打开后,再比较该内容的二进制编码,你会发现区别,不同的文件格式里面内容都不一样,但都有规律,你再试试Unicode,UTF。。。就明白了Top
5 楼baryjim(吃饭-睡觉-打豆豆)回复于 2005-05-18 18:12:45 得分 0
字符串在二进制文件中如何存储哪?
例如“abc”Top
6 楼mydo(侯佩|hopy|ks)回复于 2005-05-18 18:58:36 得分 1
请用 二进制 工具查看~~~Top
7 楼zhang_jiang(Solar)回复于 2005-05-18 19:49:26 得分 0
赞同junguo(junguo)Top
8 楼ganbaba(流光飞舞)回复于 2005-05-18 19:58:03 得分 2
二进制就是0101001之类,文本文件就是你平时看到的普通文件,顶一天到晚游泳的鱼Top
9 楼qingyuan18(zealot_tang)回复于 2005-05-18 20:13:36 得分 2
大哥,在计算机中哪个文件不是二进制的?所谓文本,UNicode都是编码方式,按某种编码方式读出来的时候才产生的不同啊!Top
10 楼nicknide(封月翔天)回复于 2005-05-18 23:52:48 得分 2
ft
数据就是数据,关键看你怎么使用了,如果说区别,就是文本文件载入的时候,会把回车换行2个符号转换成回车符号,而吃掉换行符,存盘的时候把这个吃掉的换行符吐回去...
至于也可以把文本文件当初数据文件来读,纯粹是看应用了。
就好比有人问10进制,16进制的区别,纯粹就是一回事 !!!
都是数据,只不过看问题的角度不同而已,只是你观察角度不同而已。他们都是一样的。
好比'1'
你用文本文件看是'1',你用16进制工具看是0x31
实际上都是0x31,或者是0x0011 0001
Top
11 楼nicknide(封月翔天)回复于 2005-05-18 23:54:46 得分 0
上面的0x0011 0001
错了
应该就是
0011 0001Top
12 楼herryhuang(Herry)回复于 2005-05-19 00:04:29 得分 2
没有区别,从文件系统的角度,所有的文件都是一个顺序的比特集合,区别在于程序如何解读这些数据,一段数据可以看成是文本,图像或者声音。
Top
13 楼cppprogramlover(爱相随—)回复于 2005-05-19 00:11:55 得分 2
呵呵,楼上说的很好
如果读ascii,你可以把14当成 int 14,也可以是 "14",甚至更多解释方法
很多细节是再标准库上解决的,都不用到文件系统那一级别Top




