[8/16位单片机] 求解,int类型的变量值问题

[复制链接]
158|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编译器 
| 2019-5-13 09:45 | 显示全部楼层
可以看一下你的k, S[]是如何定义的把?

使用道具

评论回复

评论

宸心尽向紫烟来 2019-5-13 21:03 回复TA
k是unsigned int ,s[]是unsigned char 类型 
| 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 | 显示全部楼层
加分类 支持! 

使用道具

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

使用道具

评论回复
扫描二维码,随时随地手机跟帖
*滑动验证:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

快速回复 返回顶部 返回列表