文本文件编码基于字符定长,译码容易些;二进制文件编码是变长的,所以它灵活,存储利用率要高些,译码难一些(不同的二进制文件格式,有不同的译码方式)。关于空间利用率,想想看,二进制文件甚至可以用一个比特来代表一个意思(位操作),而文本文件任何一个意思至少是一个字符.
http://jiadongkai-sina-com.iteye.com/blog/945854
http://wenku.baidu.com/view/d2b6a923dd36a32d7375810e.html
C的文本方读写与二进制读写的差别仅仅体现在回车换行符的处理上.文本方式写时,每遇到一个” ”(0AH换行符),它将其换成” ”(0D0AH,回车换行),然后再写入文件;当文本读取时,它每遇到一个” ”将其反变化为” ”,然后送到读缓冲区.正因为文本方式有” ”--” ”之间的转换,其存在转换耗时.二进制读写时,其不存在任何转换,直接将写缓冲区中数据写入文件
从编程的角度来说,C中文本或二进制读写都是缓冲区与文件中二进制流的交互,只是文本读写时有回车换行的转换.所以当写缓冲区中无换行符” ”(0AH),文本写与二进制写的结果是一样的,同理,当文件中不存在” ”(0DH0AH)时,文本读与二进制读的结果一样