xiaoxiao112 发表于 2019-6-2 22:41:10

求助:简单的问题搞不明白了

最简单的乘法算不对结果了

RRRR=5000 * 1000;
lcd.setCursor(0, 3);
lcd.print(RRRR);
Serial.println(RRRR);

结果为19264

xiaoxiao112 发表于 2019-6-4 19:32:47

cityant 发表于 2019-6-4 11:07
可以这样用:

RRRR=5000L * 1000;


谢谢指点,查了一下,是这样解释的,不会的一起学习一下
U & L 格式
默认情况下,整型常量被视作int型。要将整型常量转换为其他类型时,请遵循以下规则:
'u' or 'U' 指定一个常量为无符号型。(只能表示正数和0) 例如: 33u
'l' or 'L' 指定一个常量为长整型。(表示数的范围更广) 例如: 100000L
'ul' or 'UL' 这个你懂的,就是上面两种类型,称作无符号长整型。 例如:32767ul

GeGeBoom 发表于 2019-6-3 08:52:16

数据大于32767,数据溢出

xiaoxiao112 发表于 2019-6-3 19:44:44

本帖最后由 xiaoxiao112 于 2019-6-3 19:45 编辑

GeGeBoom 发表于 2019-6-3 08:52
数据大于32767,数据溢出

谢谢回复, RRRR我是这样定义的unsigned long RRRR;   按说不应该溢出的,实际溢出值应该是-32767估计编译时把RRRR作为INT编译了

cityant 发表于 2019-6-4 11:07:32

xiaoxiao112 发表于 2019-6-3 19:44
谢谢回复, RRRR我是这样定义的unsigned long RRRR;   按说不应该溢出的,实际溢出值应该是-32767   ...

可以这样用:

RRRR=5000L * 1000;
lcd.setCursor(0, 3);
lcd.print(RRRR);
Serial.println(RRRR);
页: [1]
查看完整版本: 求助:简单的问题搞不明白了