[PIC®/AVR®/dsPIC®产品] 求解,int类型的变量值问题

[复制链接]
1071|7
 楼主| 宸心尽向紫烟来 发表于 2019-5-12 20:08 | 显示全部楼层 |阅读模式
本帖最后由 小卡 于 2019-5-16 11:57 编辑

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×

评论

我用的是C18编译器  发表于 2019-5-12 20:09
CoolSilicon 发表于 2019-5-13 09:45 | 显示全部楼层
可以看一下你的k, S[]是如何定义的把?

评论

k是unsigned int ,s[]是unsigned char 类型  发表于 2019-5-13 21:03
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

粉丝
快速回复 在线客服 返回列表 返回顶部