很奇怪,在二进制中还可以输出一个0xFF到一个字节,怎么回事,是不是错了?const unsigned char XMM = (char)0xFF;
const unsigned char MAXMM = (char)0xFE;....fwrite(&XMM, 1, 1, output);//程序中的某一行但打开文件与建立文件是用二进制打开的,那不就是只可以读1或0的吗?为什么还可以读字字符的?上面的XMM是不是字符来的,为什么后面哪个是字节位置啊?

解决方案 »

  1.   

    (char)0xff = (char)255 = ■
      

  2.   

    一个字节八位啊, 0x00--0xFF,很正确啊.
      

  3.   

    二进制也是以字节操作,那不就是可以存放ABCD...的字符了?0x00--0xFF应该是16进制吧,为什么说“一个字节八位啊, 0x00--0xFF”这里应该是16个字节位吧?都怪以前没学好汇编,可不可以解释一下?
      

  4.   

    想了一下,又来问题了0x00,0x01,0x02,0x03........0xFE
    代表16个位,...不知怎样说了...是不是所有的可以显示的字符包括中文英文都是通过从 0x00 到 0xFE 中的字节组合起来得到的?
      

  5.   

    一个字节是有8位,分高字节与低字节
    例如 0xff 就是 1111 1111
         0Xe0 就是 1110 0000
    一般读取的时候是四位四位读的所以就成了 0xff了
      

  6.   

    在这里你可以下载Lcc-Win32和Visualc++ 6。0但是VC解压后会出现
    Compiling resources...
    D:\mycode\1\1.rc(11) : fatal error RC1015: cannot open include file 'afxres.h'.
    Error executing rc.exe.1.exe - 1 error(s), 0 warning(s)
     希望大家能帮忙解决呀:)
    下载VC的方法是
    http://iisking.myetang.com/Visualc/Visualc++.001
    http://iisking.myetang.com/Visualc/Visualc++.002
    http://iisking.myetang.com/Visualc/Visualc++.002
    http://iisking.myetang.com/Visualc/Visualc++.004
    http://iisking.myetang.com/Visualc/Visualc++.005
    http://iisking.myetang.com/Visualc/Visualc++.006
    http://iisking.myetang.com/Visualc/Visualc++.007
    http://iisking.myetang.com/Visualc/Visualc++.008
    http://iisking.myetang.com/Visualc/Visualc++.009
    http://iisking.myetang.com/Visualc/Visualc++.010
    http://iisking.myetang.com/Visualc/Visualc++.011
    http://iisking.myetang.com/Visualc/Visualc++.012
    http://iisking.myetang.com/Visualc/Visualc++.013
    http://iisking.myetang.com/Visualc/Visualc++.014
    http://iisking.myetang.com/Visualc/Visualc++.bat
    然后点积Visualc++.bat便可以打包了:)这可是用ACD压缩的,好了如果你能够决绝这个问题的话请一定告诉我我们共同进步。^_^
    我的主页是http://iisking.myetang.com
    我的EMAILTO: [email protected]
      

  7.   

    0x00,0x01,0x02,0x03........0xFE
    代表16个整型数,是用16进制来表示的,而不是16位,
    16位的最大数为0xffff。一个字节(char)是由8个二进制的0,1来表示。如:0xff 表示整数的时候就是255,表示字符的时候就是■。
      

  8.   

    思想终于有些清晰了。计算机中的所有的基本字符是不是由0x00 - 0xFE(不知是不是0xFF)这些字符经过组合得出来的?即0x00 - 0xFE是不是最基本的字符库?还有我见那个压缩程序,它是用0xFF来做标记的,难道0xFF是不能用键盘输进去的?
      

  9.   

    wealth(wealth):是的。0XFF一般代表-1,ASCII文件不会有-1,所以常被用于文件结尾标志,但二进制文件中就难说了。如果真的有兴趣,不妨看一看《汤姆.斯旺C++编程秘诀》中的文件部分。
      

  10.   

    以下是一小段压缩程序:for(int y = 0; y < inputlen; y++)//inputlen是文件的长度
    {
       .........
       .........   for(int q = 0; q < 0xFE; q++)//哪这一行判断到0xFE是什么意思?
       {
          .....//先不要管这些是什么!
      

  11.   

    const unsigned char XMM = (char)0xFF;
    const unsigned char MAXMM = (char)0xFE; 是将十六进制作为字符型常量存储,即使在二进制操作中也是合法的.
    至于引入十六进制可能是在寻址时更方便。
    0xFFFF代表二进制的(1111 1111 1111 1111)d.   for(int q = 0; q < 0xFE; q++)
     这是判断q小于二进制的255时q自加1
      

  12.   

    谁不知道是这个意思啊!!!我是说:在压缩程序里,它为什么要判断到0xFE,而不判断到其他的上限!!!