我在VC++.NET v2002中遇到的,我用的软件是正版的short nls;
char  a[10];nls = 0x00fa;
a[0] = (nls >> 8) & 0x00ff;
a[1] = nls & 0x00ff;结果是: a[0] = 0 , a[1] = 0nls = 0x0258;
a[0] = (nls >> 8) & 0x00ff;
a[1] = nls & 0x00ff;结果是:a[0] = 0x02 , a[1] = 0x58在程序中遇到的,请问为什么?

解决方案 »

  1.   

    VC++.NET v2002?
    没弄过, UP
      

  2.   

    厉害哟,MVP都不见得用的是正版。
      

  3.   

    我个人认为花15000RMB卖的垃圾,成堆的BUG。去问微软,微软会告诉你,是BUG你自己想办法解决吧,你的服务期过后,微软连门都不让你进。
      

  4.   

    look,我在vs.net 2003得到的。:
    short nls;
    char  a[10];nls = 0x00fa;
    a[0] = (nls >> 8) & 0x00ff;
    a[1] = nls & 0x00ff;
    TRACE("%d\n",a[0]);   // 得到0
    TRACE("%d\n",a[1]);   // 得到-6
    -----------------------------
    在vc6.0也得到如此,vs2002删了,没有用了。
    如果你如上得到的。请下载补丁。或者~~~~~,下载D版(个人意见,仅供参考)。
      

  5.   

    to dreamchild(梦小孩):我是了vs2003是对的,但2002就是错的