单片机小数用什么变量计算-单片机小数用什么变量

交换机 2024-10-25 电子科技 40 views

扫一扫用手机浏览

文章目录 [+]
int、double、float是什么意思?怎样使用?

1、double是双浮点,float是浮点,都是用来计算带小数的情况的。区别是,double不仅比float表示的范围要大的多,而且精度上也相对高一些。所以一般来说,如果需要使用小数则使用double类型,如果永远不会使用小数则使用int类型。

2、int为整数型,用于定义整数类型的数据***。float为单精度浮点型,能准确到小数点后六位***。double为双精度浮点型,能准确到小数点都十二位***。char为字符型,用于定义字符类型的数据。

3、float是浮点型数据类型,用于存储单精度浮点数或双精度浮点数。浮点数使用IEEE格式。浮点类型的单精度值具有***4***个字节,包括一个符号位、一个***8***位***二进制指数和一个***23***位尾数。

单片机变量定义类型

变量类型和定义***CW中08系列单片机C编译器支持的基本变量类型及其缺省的长度位数由表1所示。有些变量的长度可以按实际项目需要而改变,见对话框图3-1。此对话框经由上面的图2-3中“Type***Size”配置按纽打开。

使用关键字extern修饰申明。例如:主文件中定义***int***g_ival***=***0;别的文件里面用***extern***int***g_ival;申明一下就可以用了。

char类型通常被用来表示字符型数据,比如字母、数字、符号等。在单片机中,char类型通常占用1个字节(8位),其数据范围一般是-128到127或0到255。char类型的变量通常用于存储单个字符或字符串。

int是整型变量,用来申请整型数据,或者整形数据指针***单片机的C语言和普通C语言语法是一模一样的,但是细节上有些差异,都是char占用一个字节内存,但int占用2字节内存。

C51单片机浮点数运算

要先按装浮点库C51FPS.LIB,按装路径为:将***C51FPS.LIB***文件***到***C:\Keil\C51\LIB\***文件夹下面。而后在程序中用浮点型变量float或double进行运算即可。

一般是浮点数乘以10的n次方变成整数进行计算等处理,在输出的时候再次处理小数点。

把小数乘以一定的值转换为整数,完成运算后再除以那个值还原原来的数,就是这样。直接用汇编写浮点数的运算,难度太大了,这样的话用C语言写好一些。

处理浮点数是非常慢的,建议轻易不要用,非要用小数的话,那可以用整数替代啊,可以标记为小数就行了。c可以做到汇编也可以。你可以到网上查一下有没有相应的例子。

【补充一点看法】从您的问题补充来看,您的应用中对精度的要求不高,完全可以采用定点的Q格式,不用浮点运算。最合理。假如用浮点,即使浮点子程序都是汇编编的,效率也会比定点的Q格式差很远(两个数量级)。

浮点数计算有误差,整数计算没有误差。你的算法如果采用了浮点计算,就会有误差,为了减小误差,可采用双精度型浮点运算。不过,对于单片机而言,这个要求太高了。另外,也可检查一下程序,应该不会有这么大的误差。

本文转载自互联网,如有侵权,联系删除

本文链接地址:http://www.oubolanzhuangshi.com/27703.html

相关文章

  • 暂无相关推荐