一场游戏一场梦

在我的歌声里早已没有你

My Links

Blog Stats

留言簿(0)

随笔分类

随笔档案

文章档案

其他blog -.-


搜索

最新评论

阅读排行榜

评论排行榜

char 和 unsigned char 原来不一样,惭愧到极点。。。

#include "stdafx.h"


const char* check()
{
    char c=0xff;
    unsigned char val=0xff;
    return c==val?"yes":"no";
}
int _tmain(int argc, _TCHAR* argv[])
{

    printf("%s\n",check());

    return 0;
}


区别在 一个是movsx一个是movzx...........
00411AB6  movsx       eax,byte ptr [c]
00411ABA  movzx       ecx,byte ptr [val]
00411ABE  cmp         eax,ecx

posted on 2009-01-12 14:08 fdo 阅读(1942) 评论(2)  编辑 收藏

Feedback

# re: char 和 unsigned char 原来不一样,惭愧到极点。。。 2009-01-12 17:58 白亚明

movsx       是符号扩展
movzx       是零

# re: char 和 unsigned char 原来不一样,惭愧到极点。。。 2009-01-14 19:17 lt

也未必,其实是与编译器相关的。


标题  
姓名  
主页
验证码 *
内容   
  登录  使用高级评论  Top
[使用Ctrl+Enter键可以直接提交]