Jerry529(在猪的海洋里遨游) Byte Or Char多谢。不过小弟需要的是原理而非其外在地表达形式。

解决方案 »

  1.   

    我觉得二进制是真正的比特流,而ascii不是,ascii是经过“翻译”的表示可见或不可见字符的编码。虽然它不是真正的字符,但也不是二进制。有点象机器码和汇编。
         (小女子浅见,还请各位指教)
      

  2.   

    好为人师一把:
      ascii只是一个字符映射表,和二进制八竿子打不着。所谓以二进制方式传递ascii文件大概是把每个ascii字符分成8位二进制来传递。至于以ascii方式传递二进制文件这种提法就很奇怪,因为在计算机通信最终是0101这种比特流。猜测可能是这种情况:
      对于大小为10的数字,其二进制1010;“以ascii方式传递二进制”可能就是将10拆为“1”和“0”两个ascii字符。然后转换成“$31”和“$30”(不知有没有搞错它们的ascii码),也就是0011000100110000的比特流。
      (最近csdn人气不旺,胡乱发言,还请指正)
      

  3.   

    同意:
     Jerry529(在猪的海洋里遨游)
            __            _,-"~^"-.
           _// )      ,-"~`         `.
         ." ( /`"-,-"`                ;
        / 6                            ;
       /           ,            ,-"     ;
      (,__.--.      \          /        ;
       //'   /`-.\   |         |        `.__
         _.-'_/`  )  )-...,,,___\     \----,)
       ((("~` _.-'.-'          __`-.   )  (/______
            ((("`            (((---~"`     ""~^^```
      

  4.   

    多谢各位
    看了各位的发言。想了老半天。:(
    数据最终肯定是以0和1在硬件中存在,这是在2zhenggang(笑红尘)同志的教导下面才最终意识到的。:)传输问题暂时告一段落。
    但是,一个ascii文件和一个二进制文件应该还是有区别的。至少概念上如此,正如yingqiyingqi(英绮) 所说,我们可以粗显得认为ascii是一个byte在显示形式上面的表现。那么,通常意义上到底ascii指的是哪一内文件?是附和国际字符标准的形式吗?比如UNICODE或者GB,BIG5等包括两字节,四字节可显示字符的文件?还是只是存在于0-127这个范围内的可显示字符的文件?希望各位能够继续解惑。多谢多谢
      

  5.   

    当你读取文件时,有两种情况,一种是文本文件,是ASCII码的,记得以前在学校里老师说过,ASCII文件有个文件结束符,系统判断文件是否结束就看取到的数据中是否含有#0吧(不是很确定结束符).这样当你以ASCII码方式去读二进制文件时(如EXE等),所读到的信息往往是不全的,因为代码里有很多这种结束符(其实是指令吧)
    要是你学过DOS,那么应当还记得COPY时有个参数,可以实现二进制文件连接什么的,不过,我学艺不精,实在是记不起来了.
    另外,在ASCII文件中,#65应当是"A"吧,但是在二进制可执行文件里,可以理解为CPU的第65条运算指令或是控制指令什么的,是代表两种完全不同的概念.其实这些是最基本的常识,相信各位都是知道的,可我对这问题是这么理解的.
    有什么错误可别见怪.
      

  6.   

    我觉得ASCII和二进制文件就和汇编语言与机器语言的关系很相似。
    这样就好理解了。
      

  7.   

    用到第8bit的是扩展ASCII码,一般用作双字节国家的编码。ASCII文件是以保存一般文本的文件,这种文件其实也是以二进制形式保存的,只不过读取它的程序可以识别它的编码用字符映射表翻译它成为我们可以看到的文本字符。以ASCII方式传递二进制大概没有吧,如果有也许是用字符‘0’和‘1’来表示二进制的01了,这样一个bit要8bit传递,扩大了许多倍。如果按一对一翻译的话有的就没法用ASCII表示了,当然了可以用我们看不到的字符(回车之类)来对应,这样看来其实也不是以ASCII方式传递了(大概不存在这种说法吧)。
      

  8.   


    1.ASCII码的范围是从0到127.2.加上128-255后,叫扩展ASCII码(Extended ASCII),简记为EASCII.3.PC上使用的是EASCII码,而不再是ASCII码.[注]:以上3条引自<新编电脑查询辞典>
      

  9.   

    再次多谢各位的帮助。我又想了很久。。看起来ASCII和二进制文件只是对于不同的应用程序处理方式的不同而这样命名区别的。在不同的处理方式下完全可以有不同的称呼。
    比如用UltraEdit打开一个文本。如果是正常模式,那么就是Ascii方式而使用的是16进制查看编辑模式则是非ascii处理方式了。
    即使是一个纯文本文件。如果使用不同的BYTE表示不同的非显示意义。那么对处理程序来说就是一个非Ascii码文件。
    是不是这样?  不过这样想想以二进制和ascii方式传递文件就没有区别了。反正都是一个个的字节发过去。接受方组合数据的时候可不管数据区里面放的是什么。