1、比如说你输入2,那么文本文件存储的是32h(2的十六进制ascii码),但二进制文件存的是10(二进制)。
问题:文件在计算机内存中不都是以二进制的数字来存储的吗?可是为什么文本文件存储的是2的十六进制ascii码?
2、数字11,如果按照文本文件保存,需要保存2个1,字节序列为:0000000100000001
如果按二进制保存,只需要保存为:000001011。
问题:为什么按二进制保存就成了000001011?
二进制数据的读取困惑了我好久,还请高手们帮帮忙啊

解决方案 »

  1.   

    哈哈。你说的没错,在计算机的内存中,都是二进制码。但是,系统显示给你的,必须是你看得懂的文字或图形。当你在文本编辑界面中键入 2 的时候,系统就从键码把输入数据“翻译”成了 ASCII 码。当显示的时候,系统又根据 ASCII 码调用字库,显示出字型。实际上,你向二进制文件保存 2 时,也要看你当时定义的数据类型,保存的可能是 
    00000010, 
    0000000000000010,或
    00000000000000000000000000000010
    而不会仅仅是 10。至于 11,在文本文件中是 31h 31h;在二进制文件中是 0Bh (00001011)。说穿了,就是内存中的数字按什么格式(类型)来解释的问题。
      

  2.   


    LZ的思路有些问题.
    1)文本文件中大多为可显示的ASCII单双字节字符
    2)数字11按文本储存二进制是00110001 00110001,不是LZ以为的0000000100000001
      

  3.   

    本帖最后由 bcrun 于 2011-08-26 15:18:32 编辑