数码之家

 找回密码
 立即注册
搜索
查看: 1904|回复: 6

[C51] 变量运算疑惑,为什么STM8单片机里面需要加(unsigned long),STM32不需要

[复制链接]
发表于 2021-8-21 06:59:44 | 显示全部楼层 |阅读模式

爱科技、爱创意、爱折腾、爱极致,我们都是技术控

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

x
为什么STM8单片机里面需要加 (unsigned long)    V=( ( (unsigned long) (A_V - V_bias) ) * range) / V_coefficient;
而STM32单片机里面不需要加? V=( ( (A_V - V_bias) ) * range) / V_coefficient;         


发表于 2021-8-21 08:59:38 | 显示全部楼层
8位编译器的默认字长
32位编译器的默认字长

打赏

参与人数 1家元 +6 收起 理由
家睦 + 6

查看全部打赏

回复 支持 2 反对 0

使用道具 举报

发表于 2021-8-29 08:45:10 | 显示全部楼层
默认常数整数 与CPU位数有关。

为了程序的健壮和可移植性,还是加上吧。

回复 支持 反对

使用道具 举报

发表于 2021-8-30 07:31:23 来自手机浏览器 | 显示全部楼层
前边的加是为了强制转换成unsigned long这个格式,STM32是不是定义的时候就是长整形?主要还是看定义变量的时候是什么形的变量。
回复 支持 反对

使用道具 举报

发表于 2021-8-31 17:56:27 | 显示全部楼层
最好别用unsigned long这种定义,用UINT32,这样移植起来方便,不管8还是16还是32位,只要把.h改改,就行了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-31 19:01:38 | 显示全部楼层
1065307738 发表于 2021-8-30 07:31
前边的加是为了强制转换成unsigned long这个格式,STM32是不是定义的时候就是长整形?主要还是看定义变量的 ...

STM32 不需要强制转换
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-31 19:02:13 | 显示全部楼层
orsonzou 发表于 2021-8-21 08:59
8位编译器的默认字长
32位编译器的默认字长

半知半解!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-5-3 11:30 , Processed in 0.234000 second(s), 13 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

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