首页 > 系统相关 >【C语言】浮点数在内存中的存储

【C语言】浮点数在内存中的存储

时间:2023-12-03 17:32:38浏览次数:43  
标签:存储 有效数字 浮点数 float C语言 内存 127 pFloat

常⻅的浮点数:3.14159、1E10等,浮点数家族包括: float、double、long double 类型。  浮点数表⽰的范围:float.h中定义

我们先通过一道题目来了解:

#include <stdio.h>

int main()
{
 int n = 9;
 float *pFloat = (float *)&n;
 printf("n的值为:%d\n",n);
 printf("*pFloat的值为:%f\n",*pFloat);
 *pFloat = 9.0;
 printf("num的值为:%d\n",n);
 printf("*pFloat的值为:%f\n",*pFloat);
 return 0;
}

结果可能会出乎你意料:

【C语言】浮点数在内存中的存储_进制

1.浮点数的存储

上面的代码中,num和*pfloat在内存中明明是同一个数,为什么浮点数和整数的解读结果会有这么大的差别呢?

标签:存储,有效数字,浮点数,float,C语言,内存,127,pFloat
From: https://blog.51cto.com/u_16189938/8668711

相关文章

  • 《初学C语言第14天》
    ////结构体成员的访问//#include<stdio.h>//typedefstructstu//{// //成员变量// charname[20];// shortage;// chartele[12];// charsex[7];//}Stu;//voidPrint1(Stutmp)//形参tmp//形参是实参的一份临时拷贝,且此块空间放到其他的位置上即tmp位置上(存在空间浪费......
  • C语言基础知识
    C语言的特点关键字(32个):auto、break、case、char、const、continue、default、do、double、else、enum、extern、float、for、goto、if、int、long、register、return、short、signed、static、sizeof、struct、switch、typedef、union、unsigned、void、volatile、while......
  • 【C语言】自定义类型:结构体
    1、结构体类型的声明1.1、结构体的概念结构是⼀些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。1.2、结构的声明structtag{member-list;}variable-list;在一般情况下,tag、member-list、variable-list这3部分至少要出现2个。以下为实例://此声明......
  • C语言冒泡排序法
    引言冒泡排序是一种交换排序,它的基本思想是:两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止。冒泡的实现在细节上可以有很多种变化。最简单排序实现/*对顺序表L做交换排序*/voidBubbleSortO(SqList*L){ inti,j;for(i=1;i<L->length;i++) { fo......
  • 极语言3-8绘制区类、快捷键类、系统信息类、版本信息类、进程信息类、内存信息类——
    中文名字英文名称长度作用解释绘制区类PAINTSTRUCT64包含用来绘制它所拥有的窗口客户区所需要的信息的结构体。绘制区类——成员表设备hdc整数用于绘制的句柄。擦除fErase整数如果为非零值则擦除背景,否则不擦除左边rcPaint.left整数要绘制矩形的左边位置顶部rcPaint.top整数要绘制......
  • C语言概述
    1.为什么要学习C语言1>.C语言的起源和发展程序设计语言的发展:机器语言(低级语言)——汇编语言(中级语言)——高级语言低级语言:使用的是一串二进制代码中级语言:使用助记符(英文单词)来代替一串二进制代码(容易记忆,不容易出错)高级语言:......
  • C语言之文件(下 · 重要)
    在上一篇文章中,我讲述了有关ASCII文件的读写,那二进制文件的读写又该怎么进行编码呢?二进制文件的读写二进制文件保存的是数据在机器内部的映像,将数据在机器内部的映像原式原样的写入文件可以用fwrite函数;将文件中的二进制比特串原式原样写入某个变量可以用函数fread。fwrite函数fwri......
  • C语言-运算符和分支循环语句
    extern: 表示声明。没有内存空间。不能提升。const: 限定一个变量为只读变量。volatile: 防止编译器优化代码。 volatileintflg=0;register: 定义一个寄存器变量。没有内存地址。 registerinta=10; 字符串: C语言中,用双引号引着的一串字符,称之为字符串。一定有一个......
  • 表达式-C语言-2023/12/2
    首先介绍表达式:......
  • C语言【交换两变量值】
    C语言【交换两变量值】//1、临时变量intx=10,y=20;inttemp=x;x=y;y=temp;//2、相加再减的方法inta=10,b=20;a=a+b;b=a-b;a=a-b;//3、异或的方法,利用A^A=0,A^0=A的特性inti=10,j=20;i^=j;j^=i;i^=j;注意:如果存在两个指针......