首页 > 系统相关 >【C语言——浮点数在内存中的存储(补充篇)】

【C语言——浮点数在内存中的存储(补充篇)】

时间:2024-03-17 22:58:55浏览次数:26  
标签:0000 有效数字 浮点数 C语言 二进制 内存 127

一.概况 

        根据国际标准IEEE(电气和电子工程协会)754,任意一个二进制浮点数都可以表示为

以下形式:

V=(-1)^s*M*2^E

1.(-1)^表示符号位,当s=0时,V为正数;当s=1,V为负数。

2.M表示有效数字,M是大于等于1,小于2的。

3.2^E表示指数。

 

 二.存储过程

IEEE754对有效数字M和指数E,还有一些特别的规定。

     M:  根据前面的介绍M可以写成1.xxxxxxxx的形式,在计算机内部存储时默认这个数的第一位

有效位数字总为1,故在内存中只需要保存小数点后面的数字(二进制表示),等到读取数据的时

候再把前面的1 补上去。这样也可以使小数点后面的有效位保留的更精确。

      E:      E为一个无符号整数(0~255/0~2047),它在 内存中存储的时候需要找一个中间数

(127/1023)。比如2^10的指数E为10,所以E保留在内存中的数字为137,即10001001。

三.浮点数从内存中取出的过程

浮点数从内存中取的时候分为三种情况:

·E不全为0或1 :由前面放(存取)的过程倒着来就可以。

eg:0.5的二进制的形式为0.1,由于规定正整数部分必须为1,即小数点向右移动一位,则为1.0*2^(-1),其阶码为-1+127=126,表示为01111110,而尾数1.0去掉整数部分为0,补齐0到23位0000 0000 0000 0000 0000 000

其二进制形式表示为0 01111110 0000 0000 0000 0000 0000 000

·E全为0: 这时,浮点数的指数E等于1-127(1023)即为真实值,有效数字M不在加上第一位的1,而是还原为0.xxxxxxxx的小数。这样做是为了表示+(-)0,以及接近很小的数字。

·E全为1:这时,如果有效数字M全为0,表示+(-)无穷大(正负号取决于符号位s).

标签:0000,有效数字,浮点数,C语言,二进制,内存,127
From: https://blog.csdn.net/2302_79546368/article/details/136791193

相关文章

  • 内存泄漏调试工具
    asan、valgrind、coverity和gpertools都是用于帮助开发人员发现和调试代码中的各种问题的工具,但它们在特定方面有着不同的重点和功能。ASan(AddressSanitizer):ASan常用于C/C++代码的静态和动态内存访问错误检测,通过在编译时注入额外的代码来对内存进行访问监控,包括缓冲区溢......
  • PTA浙大版《C语言程序设计(第4版)》2—6
    练习2-6计算物体自由下落的距离一个物体从100米的高空自由落下。编写程序,求它在前3秒内下落的垂直距离。设重力加速度为10米/。输入格式:本题目没有输入。输出格式:按照下列格式输出height=垂直距离值代码长度限制  16KB时间限制  400ms内存限制  64MB......
  • 实验一 c语言开发环境使用和数据类型、运算符、表达式
    task1`#include<stdio.h>include<stdlib.h>intmain(){printf("o\to\n");printf("<H>\t<H>\n");printf("II\tII\n");system("pause:");return0;}`task2`#include......
  • 实验1 C语言开发环境使用和数据类型、运算符、表达式
    点击查看代码#include<stdio.h>#include<stdlib.h>intmain(){ printf("oo\n"); printf("<H><H>\n"); printf("IIII\n"); system("pause"); return0;}点击查看代码#include<stdio......
  • 整数和浮点数在内存中储存的形式
    整数整数的二进制表示法有三种,即原码、反码、补码。三种表示方式均有符号位和数值位符号位位于数值位最高位的那一位,分别用0和1表示,0表示正数,1表示负数。数值位,除最高位的那一位外其他都是数值位。正整数的原码、反码和补码都相同,负整数不同,负整数的反码等于原码二进制......
  • [C语言]——函数
    一.函数的概念数学中我们其实就见过函数的概念,⽐如:⼀次函数y=kx+b,k和b都是常数,给⼀个任意的x,就得到⼀个y值。其实在C语言也引⼊函数(function)的概念,有些翻译为:子程序,子程序这种翻译更加准确⼀些。C语言中的函数就是⼀个完成某项特定的任务的一小段代码。这段代码是有特殊......
  • 探索C语言中的循环结构
    循环结构是程序设计中一种重要的控制结构,它允许程序重复执行特定的代码块,直到满足某个条件为止。在C语言中,循环结构有多种形式,如for循环、while循环和do-while循环。本文将介绍C语言中的循环结构,并讨论它们的用法和特点。以下是我整理的关于C语言的一些入门级资料,免费分享给大......
  • 数据结构之顺序表(C语言版)
    顺序表是数据结构中最基本的一种线性表,它以一段连续的存储空间来存储数据元素,元素之间的顺序由它们在内存中的位置来决定。在C语言中,我们通常使用数组来实现顺序表。目录顺序表的结构定义顺序表的基本操作应用实例顺序表的结构定义首先,我们需要定义一个结构体来表......
  • C语言之Linux环境下学习(一)
    C语言目录C语言学习前言一、了解Linux环境二、Linux环境下编译helloworld.c1.初识Linux指令1.ls:查看当前路径内容2.cd:进入指定路径3.创建和删除文件夹:mkdir、rmdir4.创建文件:touch和gedit2.创建并编译helloworld.c文件前言创建Linux环境,并且在此环境中......
  • C语言之Linux环境下学习(三)
    本章节主要讲了数据类型、变量命名规则、运算符优先级。目录1.main函数2.注释:​编辑3.标准输入(scanf)和标准输出(printf)4.数据类型4.1整数型:4.2浮点型:5.运算符优先级6.字符常量7.运算符​编辑8.变量8.1全局变量局部变量1.main函数main函数是C语言程序的主......