极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 16545|回复: 4

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

[复制链接]
发表于 2019-6-2 22:41:10 | 显示全部楼层 |阅读模式
最简单的乘法算不对结果了

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

结果为19264

本帖子中包含更多资源

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

x
回复

使用道具 举报

 楼主| 发表于 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
回复 支持 1 反对 0

使用道具 举报

发表于 2019-6-3 08:52:16 | 显示全部楼层
数据大于32767,数据溢出
回复 支持 反对

使用道具 举报

 楼主| 发表于 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编译了
回复 支持 反对

使用道具 举报

发表于 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);
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-3-29 17:17 , Processed in 0.038820 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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