C语言中的浮点数是一种数据类型,用于存储小数或实数。
C语言中采用float和double关键字来定义小数,float称为单精度浮点型,double称为双精度浮点型,long double更长的双精度浮点型。
与整数不同,浮点数不是由二进制数组成的,而是由有限个二进制位组成的数。这些位可以表示一些随机的值,如误差、有效数字、符号位等。
在C语言中,浮点数的类型通常由以下部分组成:
1. 点数类型:用于表示浮点数的位数。点数类型由整数类型决定,可以是int、long等。
2. 点数精度:用于表示浮点数的精度。点数精度由指定精度值决定,可以是8、16、32或64位。
3. 数据对齐方式:用于保证浮点数数据的正确性。数据对齐方式由编译器决定,可以是常规对齐(默认对齐方式)或字节对齐。
在C语言中,浮点数的表示方法与操作方式如下:
1. 表示方法:浮点数可以表示为两个整数,一个整数表示点数的位数,另一个整数表示点数的值。
2. 操作方式:可以与浮点数进行各种运算,如加法、减法、乘法、除法、取模、求和等。
需要注意的是,由于浮点数的表示方法与操作方式比较灵活,因此编写正确性高的浮点数程序需要仔细考虑数据的正确性和操作方式的正确性。在编写程序时,建议遵循一些基本原则,如使用统一的表示方法、遵循数据对齐方式、避免溢出等。
占用内存的情况。
#include <stdio.h>
#include "stm32f10x.h"
void printSizeOfFloatType(void)
{
int sizeofFloat = sizeof(float);
int sizeofDouble = sizeof(double);
int sizeofLongDouble = sizeof(long double);
printf("sizeof float is %d\n",sizeofFloat);//sizeof float is 4
printf("sizeof double is %d\n",sizeofDouble);//sizeof double is 8
printf("sizeof long double is %d\n",sizeofLongDouble);//sizeof long double is 8,this is a 32bit Mcu
}
int main(void)
{
uint32_t syscount;
SystemInit();
printf("Hello World");
syscount = 0;
while (1)
{
printf("This is the %d times of the cricle",syscount);
printSizeOfFloatType();
syscount++;
}
}