当前位置: 首页 > 编程日记 > 正文

C语言中浮点型在计算机中的存储

一 . 浮点型的存储

在十进制中我们都学习过科学计数法,比如31.4可以用科学计数法表示就是3.14*10^1。浮点型同样是采取科学计数法进行表示的。在计算机中,以二进制数存储,如1011.10用科学计数法的方式可以写成1.01110*2^3,因为浮点型还有负数,所以在计算机中表示时还需要加上一个符号位,这样我们就可以总结出一般的浮点型数据的表示形式:(-1)^S*M*2^E。

      其中,(-1)^S是符号位。 M是尾数位,即上例中的1.01110,E是指数位,这样我们把一个浮点型的存储单元分成三部分。又浮点型在计算机中是4个字节,一个32个bit位,设计者把这32个bit位分为1,8,23,的形式,其中1位最高位是符号位,8位是指数位,23位是尾数位。

      (1)符号位

         最高一位符号位, 实际上就是用0正1负表示。

       (2)尾数位

         又我们知道任何一个二进制小数都可以写成是1.xxx*2^E,所以M的值一个是大于1且小于2的,这样我们就默认的省去了最前面的1,这样M省出一个位,可以表示的范围更大。所以M中存储的实际是0.xxx中的xxx的部分,如上例中的1.01110*2^3,M的中存储的实际是01110。此处还应该注意的是,在M中存储01110的时候是靠前存储的,即23个位表示为0111 0000 0000 0000 0000 000。为什么要这样表示呢,这是因为如果01110靠后存储的时候没办法确定有1的前面应该读取几个0。再举一例,如1.000000010111*2^3的时候,M的值应该是0000 0001 0111,在23中如果靠前存储是0000 0001 0111 0000 0000 000,这样我们很容易读取0000 0001 0111,并且如果后面多取0时,所表示的值的大小并不改变。而如果是靠后存储时,则是0000 0000 0000 0000 0010 111,这样我们就无法知道1的前面应该取几个0。

     (3)指数位

        E是指数位,E的计算机中是无符号整数,它的取值范围是0---255,但是这和我们的现实生活中又不一样了,我们知道在实际生活中,E可以是正数也可以是负数,那么计算机如何表示这个负数呢。设计者在设计的时候,让指数的实际值加上127之后再转化成二进制数进行存储,有同学不就会疑惑,这样它的不就增大了,那它就与实际值不符啊。这里在读取的时候又做了另一步操作,就是把E(二进制数)转化成十进制后,再减去127这样就还原成原来的样子了。这样处理之后,E的实际表示的范围就是-127---128。补充说明,如果E为全0,则实际表示的是-127,这样这个数很很小,几乎接近于0,计算机就默认把它当成了0,进行表示。

二 . 浮点型的读取

    用%f去读取一个数据时,首先将其划分成1,8,23的形式,先读取符号位,0正1负。接着读取指数位E,将得到的8bit的二进制数,转化成十进制后再减去127。最后读取尾数位,从前读取的值当成是小数点后面的数字,默认小数点前面有一个1,这样就把浮点型数据读取出来了。如1 1011 1000 0110  0000 0000 0000 0000 000,从前面取以为1,则表示负;接着取后八位1011 1000指数位,将其转化成十进制数是184再将其减去127得57;再读取后面的23个位,得011,那么它的M就是011,在前面加上默认的1,那么这个尾数就是1.011,。所以这个浮点数就是-1.011*2^57。

相关文章:

object-c中管理文件和目录:NSFileManager使用方法

object-c中管理文件和目录:NSFileManager使用方法 对于NSFileManager,文件或目录是使用文件的路径名唯一标识的。每一个路径名都是一个NSString对象,它可以是相对路径名,也可以是完整路径名。 相对路径名是相对于当前目…

python实现ssh登录send_Python实现ssh批量登录并执行命令

局域网内有一百多台电脑,全部都是linux操作系统,所有电脑配置相同,系统完全相同(包括用户名和密码),ip地址是自动分配的。现在有个任务是在这些电脑上执行某些命令,者说进行某些操作,比如安装某些软件&…

传Exchange 15将于今年9月发布

Microsoft Exchange Conference (简称MEC)是微软公司所举办的有关Exchange Server软件的主题会议,但它在过去的十年间一直没有举行。今年的9月24-26日,微软将在佛罗里达州重新启动MEC并展示Exchange 15。根据ZDNet报道&#xff0c…

Django进阶之session

基于cookie做用户验证时:敏感信息不适合放在cookie中 session依赖cookie session原理 cookie是保存在用户浏览器端的键值对 session是保存在服务器端的键值对 session服务端中存在的数据为: session {随机字符串1:{用户1的相关信息}随机字符…

python画美女代码_教你用python爬取网站美女图(附代码及教程)

我前几篇文章都是说一些python爬虫库的用法,还没有说怎样利用好这些知识玩一些好玩的东西。那我今天带大家玩好玩又刺激的,嘻嘻!对了,requests库和正则表达式很重要的,一定要学会!一定要学会!&a…

Python基础学习3

6 模块和包 (1) 命名以.py结尾的文件就是Python模块 Python的包就是一个文件夹,至少有还有一个__init__.py的文件 包中可以有文件夹,文件夹中可以有包 (2) 文件的导入 每使用一个变量名或者函数时,就需要导入另一个文件 例&#…

CSS伪类 选择器

一、伪类:active/*被激活的元素*/:focus/*拥有键盘输入焦点的元素*/ :hover/*鼠标悬浮在元素上方时*/ :link/*未被访问的链接*/ :visited/*已被访问的链接*/ :first-child/*元素的第一个子元素*/ :lang/*带有指定 lang 属性的元素*/ CSS执行顺序是:lvcha link :hove…

svn中的revert和update

svn中的revert和update今天有人问到revert和update的问题。刚开始还真被问住了。因为感觉revert和update都可以将本地的copy更新到以前的一个版本,会有什么不同呢?查了些资料,并做了个试验,终于发现了它们的不同。假设当前最新的版…

BOM 浏览器对象模型和DOM 文档对象模型

浏览器对象模型BOM 1. 浏览器对象模型介绍 BOM(Browser Object Model) 是指浏览器对象模型,是用于描述这种对象与对象之间层次关系的模型,浏览器对象模型提供了独立于内容的、可以与浏览器窗口进行互动的对象结构。BOM由多个对象组成,其中代表…

上交三月月赛[SJTU] 1106 sudoku

题目大意:给出一道数独题,判断该数独是否有解且有唯一解。 解题思路: 由前几题的难度得,此题的难度不会太过分,所以简单暴力就可以了,40ms用时一本满足。 简单地讲一下具体的实现,从左上开始从左…

C语言-三子棋游戏

C语言中用写头文件的方式写了一个三子棋游戏 1.测试函数text.c #define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h> #include<string.h> #include<stdlib.h> #include<time.h> #include"chess.h"void menu() {printf("*************…

取余运算怎么算_TensorFlow2.0(2):数学运算

点击“机器学习算法与Python实战”&#xff0c;“置顶”公众号重磅干货&#xff0c;第一时间送达TensorFlow2.0(1)&#xff1a;基本数据结构——张量1 基本运算&#xff1a;(、-、*、/、//、%) 基本运算中所有实例都以下面的张量a、b为例进行&#xff1a;import tensorflow as …

xen二进制安装

需要几台机器做集群测试,目前只有一台机器所以用xen来虚拟化几台机器出来 系统: centos5.6 安装xen yum install kernel-xen xen修改grub /boot/grub/grub.conf将default1改为default0 default0 timeout5 splashimage(hd0,0)/grub/splash.xpm.gz hiddenmenu title CentOS (2.6.…

python模块之json,pickle

序列化是指把内存里的数据转变成字符串&#xff0c;以使其能保存到硬盘上或者通过网络输送到远程。 序列化的两个模块&#xff1a; json:只能把python中的int/str/list/tuple/dict类型的数据&#xff0c;可以在不同的语言之间传递数据。Python和JavaScript数据对应关系&#xf…

关于如何在pc端使用github

http://www.bcwhy.com/thread-17636-1-1.html转载于:https://www.cnblogs.com/glgl2424/archive/2013/03/13/2956944.html

Python爬虫1-Scrapy环境的安装

一. Scrapy环境的安装 1. Scrapy各平台支持情况 除了python3在Windows下不支持外&#xff0c;其余&#xff08;Linux&#xff0c;Mac&#xff09;均支持 2. 安装miniconda (1)建议使用Python2&#xff0c;用miniconda安装scrapy (2)miniconda时Python环境管理工…

汉字笔画数据_统计学原理 数据的预处理

数据审核数据审核—原始数据(raw data)完整性审核应调查的单位或个体是否有遗漏所有的调查项目或变量是否填写齐全准确性审核数据是否真实反映实际情况&#xff0c;内容是否符合实际数据是否有错误&#xff0c;计算是否正确等数据审核—二手数据(second hand data)适用性审核弄…

SqlServer时间函数的使用例子整理

为什么80%的码农都做不了架构师&#xff1f;>>> 整理SqlServer2008的时间函数如下&#xff1a; 1.获取系统时间 select getdate(); --2012-05-06 22:26:49.950 select current_timestamp; --2012-05-06 22:26:49.950 select getutcdate(); --20…

bzoj 4710 [Jsoi2011]分特产 组合数学+容斥原理

题面 题目传送门 解法 考虑容斥原理 显然&#xff0c;我们可以枚举有多少个人没有收到 然后就转化成一个组合问题了 假设现在有\(x\)个物品&#xff0c;\(n\)个人&#xff0c;可以有人没有被分到&#xff0c;那么分给这\(n\)个人的方案数为\(nx-1\choose n-1\) 然后就是分别计算…

Python爬虫2-GET_POST与开发者工具

一. GET_POST与开发者工具 1. 浏览器的基本工作规则 浏览器请求访问服务器&#xff0c;服务器返回数据 (1) 请求的格式 GET&#xff1a;长度不能大于2k参数明文显示在地址栏&#xff0c;不保密&#xff0c;通常用在查询请求 POST:长度可以很大&#xff0c;参数写…

springcloud是什么_阿里P8道出,入职阿里必会199道SpringCloud面试题,你能掌握多少?...

前言Spring Cloud 自 2016 年 1 月发布第一个 Angel.SR5 版本&#xff0c;到目前 2020 年 3 月发布 Hoxton.SR3 版本&#xff0c;已经历经了 4 年时间。这 4 年时间里&#xff0c;Spring Cloud 一共发布了 46 个版本&#xff0c;支持的组件数从 5 个增加到 21 个。Spring Cloud…

不一样的命令行 – Windows PowerShell简介

引子 一直很羡慕Linux的命令提示符&#xff08;当然他们叫Shell&#xff09;。正则表达式&#xff0c;管道&#xff0c;各种神奇的命令&#xff0c;组合起来就能高效完成很多复杂的任务。效率实在是高。流了n年的哈喇子以后&#xff0c;终于有幸用上了Win7&#xff0c;邂逅了cm…

excel中会计专用格式问题_解决方法

excel 2003在使用格式中当选择会计专用会出现负号在左,数字在右的情况.这类设置并不是在excel中完成,而是在控制面板,区域和语言选项---自定义中设置---货币中设置,-&#xffe5;1.1改为&#xffe5;-1.1就可以解决了.包括千位分割样式保留的小数点位数等都可以在这里进行设置来…

Spring.Net Aop

Spring.Net 有四种通知&#xff1a; IMethodBeforeAdvice&#xff0c;IAfterReturningAdvice&#xff0c;IMethodInterceptor&#xff0c;IThrowsAdvice BeforeAdvice 1 using System.Reflection;2 using Spring.Aop;3 public class BeforeAdvice : IMethodBefore…

Oracle to_char函数的使用方法

本文转载于:https://blog.csdn.net/mikyz/article/details/69397030 本文转载于:https://www.cnblogs.com/aipan/p/7941917.html 本文转载于:https://blog.csdn.net/jinlong5200/article/details/3135949 转载于:https://www.cnblogs.com/demon09/p/9485627.html

python装饰器教学_Python装饰器学习(九步入门)

这是在Python学习小组上介绍的内容&#xff0c;现学现卖、多练习是好的学习方式。第一步&#xff1a;最简单的函数&#xff0c;准备附加额外功能 # -*- coding:gbk -*-示例1: 最简单的函数,表示调用了两次def myfunc():print("myfunc() called.")myfunc()myfunc()第二…

跨平台表空间传输(linux 10g表空间跨平台迁移到window 11g)

最近公司的一个项目里的linux 系统中的oracle 10g数据库&#xff0c;需要把某个表空间里的所有数据都迁移到window 2003的11g里&#xff0c;经过我与dba的交流、测试&#xff0c;决定使用跨平台的表空间传输技术&#xff0c;目前此项任务已经完成&#xff0c;经过测试&#xff…

YY的GCD 莫比乌斯反演

&#xff5e;&#xff5e;&#xff5e;题面&#xff5e;&#xff5e;&#xff5e; 题解&#xff1a; $ans \sum_{x 1}^{n}\sum_{y 1}^{m}\sum_{i 1}^{k}[gcd(x, y) p_{i}]$其中k为质数个数 $$ans \sum_{i 1}^{k}\sum_{x 1}^{n}\sum_{y 1}^{m}[gcd(x, y) p_{i}…

python答辩结束语_Beta答辩总结

前言队名&#xff1a;拖鞋旅游队项目的链接与宣传项目总结原计划实现功能预期完成程度上传照片完美实现照片信息标注在地图上对于有地理信息的照片能够较为精确的定位足迹地图可视化能够用颜色区分出到到每个省份的程度以及显示到达的地点生成旅游故事能够生成不同的故事模板&a…

在一台电脑上使用两个github账号

问题描述&#xff1a; 我公司有一个github账号&#xff0c;每天工作把代码传上去&#xff0c;我觉得代码写的好&#xff0c;我同时想上传到自己的github账号上面去&#xff0c;但是目前只有一台电脑&#xff0c;如何在一台电脑上面进行设置&#xff0c;使这一台电脑可以同时上传…