首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我尝试pint的变量打印了错误的值

我尝试pint的变量打印了错误的值
EN

Stack Overflow用户
提问于 2021-07-05 23:23:21
回答 1查看 49关注 0票数 0

我正在读取传感器的值,并将它们保存在以下变量中。

代码语言:javascript
复制
uint16_t C2;

uint16_t C4;

signed long int dT = 0;

然后我想做这个计算;

代码语言:javascript
复制
signed long long int OFF = 0;

OFF=C2* 131072+(C4*dT)/64;

当我打印输出时,它会打印0。

我认为问题是因为dT是32位的,反之是64位的。但我不知道如何解决这个问题。

我正在使用stm32f103rb并用stm32CubeIDE编程

EN

回答 1

Stack Overflow用户

发布于 2021-07-05 23:38:46

如果不强制转换并在32位系统上执行,则结果为-24930011

如果您使用

代码语言:javascript
复制
    OFF=(int64_t)C2*131072+((int64_t)C4*dT)/64;

结果是4404255012。

https://godbolt.org/z/eEab1dr1d

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68258562

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档