黑马程序员技术交流社区

标题: 为什么不是330? [打印本页]

作者: blz01003hm    时间: 2014-4-15 17:40
标题: 为什么不是330?
本帖最后由 blz01003hm 于 2014-4-15 18:02 编辑

#include<stdio.h>
int main(void){
unsigned char a=165;
unsigned char b=a*2;
printf("%d",b);
return 0;
}
作者: 周宇华    时间: 2014-4-15 17:53
unsigned char的范围是0-255,a*2=330=0x14a,超出了范围,截取低8位,b=0x4a=74,所以结果是74
作者: blz01003hm    时间: 2014-4-15 18:00
周宇华 发表于 2014-4-15 17:53
unsigned char的范围是0-255,a*2=330=0x14a,超出了范围,截取低8位,b=0x4a=74,所以结果是74 ...

额 这样啊 谢谢




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2