数据类型强制转换问题 IAR STM8 2.10.4
时间:10-02
整理:3721RD
点击:
unsigned char a;
unsigned int b;
b=0x999;
a=(unisgned char)b;
最后a的结果为什么是0?
不解,应该怎么写才对?
IAR STM8 2.10.4
unsigned int b;
b=0x999;
a=(unisgned char)b;
最后a的结果为什么是0?
不解,应该怎么写才对?
IAR STM8 2.10.4
这应该就是编译器的问题了,
如果程序改成这样:
unsigned int a;
unsigned int b;
b=0x999;
a=(unsigned char)b;
这样a的结果等于0x99
另外,同样的程序
unsigned char a;
unsigned int b;
b=0x999;
a=(unsigned char)b;
在MPLAB IDE8.92 + PICC9.83环境下仿真
a的结果等于0x99
无符号char最大存放的数字是255,你的已经溢出了
就是要它溢出,溢出部分不分了