打印
[技术问答]

数据类型强制转换的问题

[复制链接]
1040|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wangch_sh|  楼主 | 2013-10-8 10:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用NUC140写了个读写flash的程序,擦除以后,再读出来,读为0xffffffff。
unsigned long int A_buffer,B_buffer,C_buffer;
int  AUP_temp=2000;
char A_UP_qian,A_UP_bai,A_UP_shi,A_UP_ge;
....................
A_buffer=DaRead(0);      //读FLASH
AUP_temp=((int)(A_buffer));
AUP_temp1=AUP_temp;
A_UP_qian=((char)(AUP_temp/1000+48));
A_UP_bai=((char)(AUP_temp%1000/100+48));
A_UP_shi=((char)(AUP_temp%100/10+48));
//A_UP_ge=((char)(AUP_temp%10+48));
A_UP_ge=((char)(AUP_temp%10));
调试时发现A_UP_ge=0XFF。
我不懂,A_UP_ge为什么等于0xff呢?
我觉得应该为1位数。就算是三位数,最大应该是127啊!char不是有符号数吗?请高手指教,谢谢!


沙发
wangch_sh|  楼主 | 2013-10-8 11:15 | 只看该作者
高手支招啊!

使用特权

评论回复
板凳
奔跑的牛| | 2013-10-9 09:19 | 只看该作者
0XFF 是 负1的补码。是个位数

使用特权

评论回复
地板
wangch_sh|  楼主 | 2013-10-9 10:44 | 只看该作者
版主厉害,我明白了。谢谢!

使用特权

评论回复
5
从小木丁丁| | 2014-8-25 09:37 | 只看该作者
版主厉害,醍醐灌顶啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:为江山踏坏了乌骓马,为社稷拉断了宝雕弓。

318

主题

2814

帖子

5

粉丝