CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

急问:二进制文件和文本文件的区别?

楼主baryjim(吃饭-睡觉-打豆豆)2005-05-18 17:44:11 在 C/C++ / C语言 提问

例如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

相关问题

  • 一直没有弄清楚文本文件跟二进制文件的区别
  • 二进制文件和文本文件有什么区别(有分)
  • 二进制文件和文本文件
  • 谁能给一明确的答复,恕我不懂!有关文本文件与二进制文件的区别?
  • 请教二进制文件转成文本文件的方法
  • 如何将二进制文件转成文本文件
  • 如何区分二进制文件和文本文件!
  • 关于文本文件与二进制文件
  • 怎么把二进制数据加到文本文件中去
  • 如何确定文件是文本文件还是二进制文件?

关键词

  • 二进制
  • 文件
  • 字符
  • 编码
  • ascii码
  • 数据
  • 文本
  • 内容
  • 系统
  • 文本文件

得分解答快速导航

  • 帖主:baryjim
  • lbing7
  • qfeng_zhao
  • junguo
  • csan
  • mydo
  • ganbaba
  • qingyuan18
  • nicknide
  • herryhuang
  • cppprogramlover

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo