注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
白手梦想家的个人空间 https://home.eeworld.com.cn/space-uid-573168.html [收藏] [复制] [分享] [RSS]
日志

【思考】程序中一个立即数是多少位对程序有什么影响?

已有 759 次阅读2015-6-22 08:36 |个人分类:STM32学习| 程序, 影响

看如下代码(环境为VC6):
#define NUM (unsigned char)0x01
long a = NUM<<17;
printf("%ld",a);
结果输出131072
汇编代码:
#define NUM ((unsigned char)0x01)
32:       long a = NUM<<17;
00401268   mov         dword ptr [ebp-4],20000h
33:       printf("%d",a);
0040126F   mov         eax,dword ptr [ebp-4]
00401272   push        eax
00401273   push        offset string "%d" (0043101c)
00401278   call        printf (00401520)
0040127D   add         esp,8
34:       return 0;
00401280   xor         eax,eax
注意20000h,并不是8bit。编译器处理的时候和运行的时候不一样。

unsigned char a = 0x01;
a = a<<9;
printf("%d",a);
输出为0。
评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章