美文网首页
51单片机 /、* 运算问题

51单片机 /、* 运算问题

作者: 凯旋_6863 | 来源:发表于2019-01-29 13:39 被阅读0次

上图看代码

51单片机 /、* 运算问题 51单片机 /、* 运算问题

通过串口输出可得,adc_value=1023,用计算器可算得(1023*4930)/1023=4930,但是在串口得到的却是0.061,很显然值是错的,我们把代码放到Visual Studio中编译来运行

51单片机 /、* 运算问题

结果为4930,值是正常的

原因总结: 在C语言中四则运算默认使用int型变量存储其运算结果,51位单片机是8位的MCU,int型变量只占2字节,则int取值范围为2^8 + 2^8 =65536,而1023*4930已经大于这个值,所以是无法运算的,而在Visual Studio中运行正常,是因为电脑CPU是64位的,int占4字节。更改代码:

51单片机 /、* 运算问题

将结果转换取值范围更大的long类型,结果正常。

51单片机 /、* 运算问题
8/16位系统中变量取值范围
char                      1字节    -128~+127
int                          2字节      -32768~+32767
unsigned int        2字节    0~65535
long int                  4字节 -2147483648~+2147483647
32/64位操作系统中取值范围:
int        -2147483648~2147483647(-2^32~2^32-1   
4个字节

相关文章

  • 51单片机 /、* 运算问题

    上图看代码 通过串口输出可得,adc_value=1023,用计算器可算得(1023*4930)/1023=493...

  • 2017年10月17日学习总结

    今天学习的是位运算,就是进制转换和与或非关系的运算方法,之前在学校学习过51单片机,在进制转换这有些基础。上午老师...

  • 向51单片机说再见!

    51单片机的辉煌过去 51单片机指MCS-51系列单片机,CICS指令集。由Intel公司开发,其结构增加了如乘(...

  • 51单片机常用波特率初值表(12M晶振)

    为什么51单片机的晶振一般使用11.0592? 用11.0592晶振的原因是51单片机的定时器导致的。用51单片机...

  • 51单片机基本结构

    姓名:陈婧娴 学号:19021211245 【嵌牛导读】:51单片机是初学者常接触的单片机,本文着重介绍51单片机...

  • 2019-09-24单片机有很多种

    1. 51单片机发展史 1.1、51单片机由Intel公司设计诞生 (1)1971年,Intel推出4位单片机I...

  • Mac下单片机开发环境的搭建

    先来简单介绍一下51单片机: 51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖...

  • 来自一个电子狂的学习之路

    一、51单片机生涯 前面介绍了那么多知识,终于可以畅谈我和单片机的故事了。我记得非常清晰,学习51单片机是从1...

  • 电子技能的提升

    一、51单片机生涯 前面介绍了那么多知识,终于可以畅谈我和单片机的故事了。 我记得非常清晰,学习51单片机是从15...

  • mac下进行 51单片机的开发

    前言 纪念下,今天51单片机在mac下运行成功,记录下过程。 过程 1、淘宝 51单片机开发版购买。 56块钱。...

网友评论

      本文标题:51单片机 /、* 运算问题

      本文链接:https://www.haomeiwen.com/subject/kelxsqtx.html