[PIC®/AVR®/dsPIC®产品]

求解,int类型的变量值问题

[复制链接]
761|7
手机看帖
扫描二维码
随时随地手机跟帖
宸心尽向紫烟来|  楼主 | 2019-5-12 20:08 | 显示全部楼层 |阅读模式
本帖最后由 小卡 于 2019-5-16 11:57 编辑

你好,我写了乘法,如k=50*4,不是应该为200,十六制为0xC8,可下载到单片机显示怎么都不对,我调试了一下,可发现k=0xFFC8,请问哪里不对呢
微信图片_20190512200722.jpg

使用特权

评论回复
评论
宸心尽向紫烟来 2019-5-12 20:09 回复TA
我用的是C18编译器 
CoolSilicon| | 2019-5-13 09:45 | 显示全部楼层
可以看一下你的k, S[]是如何定义的把?

使用特权

评论回复
评论
宸心尽向紫烟来 2019-5-13 21:03 回复TA
k是unsigned int ,s[]是unsigned char 类型 
ayb_ice| | 2019-5-14 08:37 | 显示全部楼层
CoolSilicon 发表于 2019-5-13 09:45
可以看一下你的k, S[]是如何定义的把?

关注最终结果

使用特权

评论回复
淘猫汤姆| | 2019-5-14 10:22 | 显示全部楼层
从下面的代码看,k应该是int_16的,赋值那里做一个显性类型转换就不会有问题了。不过我还是关心一下编译器的版本?

使用特权

评论回复
小卡| | 2019-5-16 11:58 | 显示全部楼层
加分类 支持! 

使用特权

评论回复
Rock007| | 2019-5-17 13:06 | 显示全部楼层
uint16_t  是无符号数据类型
int16_t    是带符号数据类型
50 * 8默认都是无符号数据类型,你的变量K应该是带符号数据类型。把K的数据类型改为无符号数据类型就可以了。

使用特权

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

本版积分规则

18

主题

87

帖子

0

粉丝