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

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

[复制链接]
766|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 小卡 于 2019-5-16 11:57 编辑

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

微信图片_20190512200722.jpg (452.62 KB )

微信图片_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的,赋值那里做一个显性类型转换就不会有问题了。不过我还是关心一下编译器的版本?

使用特权

评论回复
5
小卡| | 2019-5-16 11:58 | 只看该作者
加分类 支持! 

使用特权

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

使用特权

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

本版积分规则

18

主题

87

帖子

0

粉丝