wjhhhhh 发表于 2024-6-10 10:55:12

jwd 发表于 2024-6-10 06:37
看看这是不是你要的数?就取了低32位

请教先生 :    怎么设置成黑底白字的?   谢谢

Yim_Hom 发表于 2024-6-10 14:04:58

m1参与运算时强转为ulong就行了,
格式不一致,
先进行强转,
再进行运算,
运算有顺序,
再处理结果。

网老四 发表于 2024-6-10 16:09:23

编译器处理表达式默认把所有数值转换成表达式里最高数据类型进行运算,
这里表达式中m1是uint类型,1000也会当成int类型,所以导致运算结果越界错误,
两个办法解决,
1,在m1或者1000前增加强制类型转换符,   (ulong)m1*1000;或者m1*(ulong)1000;
2.常数加UL后缀,指定常数类型为ulong类型, m1*1000UL;

jwd 发表于 2024-6-10 21:49:22

wjhhhhh 发表于 2024-6-10 10:55
请教先生 :    怎么设置成黑底白字的?   谢谢

你说计算器的那个啊,那是win11自带的啊

dws1966 发表于 2024-6-17 08:20:00

真的又学到了,谢谢!
页: 1 [2]
查看完整版本: 请教C51中的一个数学运算错误 | 强制类型转换