<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://jackxiang.com/post//</link>
<title><![CDATA[ASCII码文件和二进制文件]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Mon, 25 Jul 2011 03:28:48 +0000</pubDate> 
<guid>http://jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	<br/>　　ASCII文件也称为文本文件，这种文件在磁盘中存放时每个字符对应一个字节，用于存放对应的ASCII码。例如，数5678的存储形式为：<br/><br/>　　ASC码： 　00110101 00110110 00110111 00111000<br/><br/>　　　　　　　&nbsp;&nbsp; ↓ 　&nbsp;&nbsp;&nbsp;&nbsp;　　　↓　 　　　↓&nbsp;&nbsp; 　 　　↓<br/><br/>　　十进制码： 5　　 　　6&nbsp;&nbsp; 　　　　7　 　　　8 共占用4个字节。ASCII码文件可在屏幕上按字符显示， 例如源程序文件就是ASCII文件，用DOS命令TYPE可显示文件的内容。 由于是按字符显示，因此能读懂文件内容。<br/><br/>　　二进制文件是按二进制的编码方式来存放文件的。 例如， 数5678的存储形式为： 00010110 00101110只占二个字节。二进制文件虽然也可在屏幕上显示， 但其内容无法读懂。C系统在处理这些文件时，并不区分类型，都看成是字符流，按字节进行处理。 输入输出字符流的开始和结束只由程序控制而不受物理符号(如回车符)的控制。 因此也把这种文件称作“流式文件”。<br/><br/>　　一个文件可以以文本模式或二进制模式打开，这两种的区别是：在文本模式中回车被当成一个字符&#039;&#92;n&#039;，而二进制模式认为它是两个字符0x0D,0x0A；如果在文件中读到0x1B，文本模式会认为这是文件结束符，也就是二进制模型不会对文件进行处理，而文本方式会按一定的方式对数据作相应的转换。<br/><br/>　　在使用c函数进行文件的处理时，都把文件看作二进制文件来处理，能减少不少不必要的麻烦·！<br/><br/>　　二进制文件，这个再基础不过的名词，正因为它的无处不在，或许没有人会关注它背后隐含的内容。其实我也一样，在写下这些文字之前，我也是认为二进制文件就像空气一样，平常得让人完全忽略了。<br/><br/>　　很偶然的，今天在写代码的时候使用了fopen函数：<br/><br/>　　FILE * fopen (const char * filename, const char * mode)<br/><br/>　　大家可以看到第二个参数是mode，而这个参数定义了文件打开的方式，w、a等都可以做为函数的实参。除此之外，还有两个值：t和b。这两个值定义了文件是按照文本(text)还是二进制(binary)方式开发。正是这个两个值引起了我对二进制文件的兴趣，因为它们让我想到了很多问题。<br/><br/>　　首先，出现在脑海的第一个问题是：文本文件和二进制文件有什么区别呢？我想这个问题并不是每个程序员能够马上回答上来的，至少我是不行了。查阅了资料之后，发现答案就在自己的知识范围之内的：将文件看作是由一个一个字节(byte) 组成的，那么文本文件中的每个字节的最高位都是0，也就是说文本文件使用了一个字节中的七位来表示所有的信息，而二进制文件则是将字节中的所有位都用上了。这就是两者的区别；<br/><br/>　　接着，第二个问题就是文件按照文本方式或者二进制方式打开，两者会有什么不同呢？其实不管是二进制文件也好，还是文本文件也好，都是一连串的0和1，但是打开方式不同，对于这些0和1的处理也就不同。如果按照文本方式打开，在打开的时候会进行translate，将每个字节转换成ASCII码，而以按照二进制方式打开的话，则不会进行任何的translate；<br/><br/>　　最后就是文本文件和二进制文件在编辑的时候，使用的方式也是不同的。譬如，你在记事本中进行文本编辑的时候，你进行编辑的最小单位是字节(byte)；而对二进制文件进行编辑的话，最小单位则是位(bit)，当然我们都不会直接通过手工的方式对二进制文件进行编辑了。<br/><br/>
]]>
</description>
</item><item>
<link>http://jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] ASCII码文件和二进制文件]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>