文档章节

float 在内存中如何存储的

芥末小弟
 芥末小弟
发布于 2017/03/01 09:54
字数 410
阅读 1
收藏 0
点赞 0
评论 0

float类型数字在计算机中用4个字节存储。遵循IEEE-754格式标准:
    一个浮点数有2部分组成:底数m和指数e

底数部分 使用二进制数来表示此浮点数的实际值
指数部分 占用8bit的二进制数,可表示数值范围为0-255

但是指数可正可负,所以,IEEE规定,此处算出的次方必须减去127才是真正的指数。
    所以,float类型的指数可从-126到128

底数部分实际是占用24bit的一个值,但是最高位始终为1,所以,最高位省去不存储,在存储中占23bit
    科学计数法。

格式:
SEEE EEEE EMMM MMMM MMMM MMMM MMMM MMMM
S表示浮点数正负    
E指数加上127后的值得二进制数据
M底数

举例:
17.625在内存中的存储

首先要把17.625换算成二进制:10001.101

    整数部分,除以2,直到商为0,余数反转。
    小数部分,乘以2,直到乘位0,进位顺序取。

在将10001.101右移,直到小数点前只剩1位:
    1.0001101 * 2^4 因为右移动了四位

这个时候,我们的底数和指数就出来了
底数:因为小数点前必为1,所以IEEE规定只记录小数点后的就好。所以,此处的底数为:0001101
指数:实际为4,必须加上127(转出的时候,减去127),所以为131。也就是10000011
符号部分是整数,所以是0
综上所述,17.625在内存中的存储格式是:
01000001 10001101 00000000 00000000    


© 著作权归作者所有

共有 人打赏支持
芥末小弟
粉丝 0
博文 202
码字总数 120715
作品 0
昌平
小蚂蚁学习C语言(2)——C语言编程预备知识(上)

C语言编程预备知识 1,cpu 内存条 硬盘 显卡 主板 显示器 之间的关系 2,hello world程序如何运行起来的 3,什么是数据类型 4,什么是变量 5,cpu 内存条 vc++ 操作系统 之间的关系 6,变量为...

嗜学如命的小蚂蚁 ⋅ 2015/11/28 ⋅ 0

多因子模型之因子(信号)测试平台----python中Pandas做处理时内存节省的技巧

之前看到过一篇文章,讲的就是如何在使用pandas的时候降低内存的开销。笔者亲自尝试了一下,发现确实不错,但是也会有很多问题,譬如,一些第三方包(例如statsmodels、alphalens等)的运算要...

qtlyx ⋅ 2017/09/16 ⋅ 0

float、double类型的数据在计算机内部的表示法

由于float和double类型的数据在内存中的保存形式是一样的,只是double表示的范围更大而已。因此,这里只介绍float的表示方法。double同理。假设,我现在有一个数据-12.25。那么这个数据在计算...

ElleryQueen ⋅ 2017/12/09 ⋅ 0

小蚂蚁学习C语言(3)——C语言编程预备知识(中)

接上一篇笔记:http://my.oschina.net/woshixiaomayi/blog/536868 6,变量为什么要初始化: 所谓初始化就是赋值的意思。 释放:空间的使用权限可以分配给其他设备使用 道理是这样的: 当变量...

嗜学如命的小蚂蚁 ⋅ 2015/11/29 ⋅ 0

浮点数存储方式

任何数据在内存中都是以二进制的形式存储的,例如一个short型数据1156,二进制表示形式为00000100 10000100。则在Intel CPU架构的系统中,存放方式为 10000100(低地址单元) 00000100(高地址单...

alon龙武 ⋅ 2014/11/14 ⋅ 0

float浮点数的二进制存储方式及转换

int和float都是4字节32位表示形式。为什么float的范围大于int? float精度为6~7位。1.66*10^10的数字结果并不是166 0000 0000 指数越大,误差越大。 这些问题,都是浮点数的存储方式造成的。...

Playboy002 ⋅ 2015/11/03 ⋅ 0

浅谈Lucene中的DocValues

前言:在Lucene4.x之后,出现一个重大的特性,就是索引支持DocValues,这对于广大的solr和elasticsearch用户,无疑来说是一个福音,这玩意的出现通过牺牲一定的磁盘空间带来的好处主要有两个...

九劫散仙 ⋅ 2016/05/10 ⋅ 0

sizeof(空类或空结构体)

某童靴前天去理想国际某公司面试,回来在宿舍讨论了这样一道题: VC++里,有一个空类,没有声明任何成员变量或函数,请问此空类占多大字节空间? A、 0 B、 1 C、 4 D、8 当时考虑了32bit和6...

长平狐 ⋅ 2013/01/06 ⋅ 1

2.21 字符串参与运算

/字符串数据和其他数据做+,结果是字符串类型。这里的+不是加法运算,而是字符串连接符。/class DataTypeDemo9 {public static void main(String[] args) {System.out.println("hello" + 'a...

msirene ⋅ 2015/08/24 ⋅ 0

Java问题集锦

1、优先返回空集合而非null 如果程序要返回一个不包含任何值的集合,确保返回的是空集合而不是null。这能节省大量的”if else”检查。 2、谨慎操作字符串 如果两个字符串在for循环中使用+操作...

十一11 ⋅ 2016/02/18 ⋅ 1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

uWSGI + Django @ Ubuntu

创建 Django App Project 创建后, 可以看到路径下有一个wsgi.py的问题 uWSGI运行 直接命令行运行 利用如下命令, 可直接访问 uwsgi --http :8080 --wsgi-file dj/wsgi.py 配置文件 & 运行 [u...

袁祾 ⋅ 30分钟前 ⋅ 0

JVM堆的理解

在JVM中,我们经常提到的就是堆了,堆确实很重要,其实,除了堆之外,还有几个重要的模块,看下图: 大 多数情况下,我们并不需要关心JVM的底层,但是如果了解它的话,对于我们系统调优是非常...

不羁之后 ⋅ 昨天 ⋅ 0

推荐:并发情况下:Java HashMap 形成死循环的原因

在淘宝内网里看到同事发了贴说了一个CPU被100%的线上故障,并且这个事发生了很多次,原因是在Java语言在并发情况下使用HashMap造成Race Condition,从而导致死循环。这个事情我4、5年前也经历...

码代码的小司机 ⋅ 昨天 ⋅ 1

聊聊spring cloud gateway的RetryGatewayFilter

序 本文主要研究一下spring cloud gateway的RetryGatewayFilter GatewayAutoConfiguration spring-cloud-gateway-core-2.0.0.RC2-sources.jar!/org/springframework/cloud/gateway/config/G......

go4it ⋅ 昨天 ⋅ 0

创建新用户和授予MySQL中的权限教程

导读 MySQL是一个开源数据库管理软件,可帮助用户存储,组织和以后检索数据。 它有多种选项来授予特定用户在表和数据库中的细微的权限 - 本教程将简要介绍一些选项。 如何创建新用户 在MySQL...

问题终结者 ⋅ 昨天 ⋅ 0

android -------- 颜色的半透明效果配置

最近有朋友问我 Android 背景颜色的半透明效果配置,我网上看资料,总结了一下, 开发中也是常常遇到的,所以来写篇博客 常用的颜色值格式有: RGB ARGB RRGGBB AARRGGBB 这4种 透明度 透明度...

切切歆语 ⋅ 昨天 ⋅ 0

CentOS开机启动subversion

建立自启动脚本: vim /etc/init.d/subversion 输入如下内容: #!/bin/bash## subversion startup script for the server## chkconfig: 2345 90 10# description: start the subve......

随风而飘 ⋅ 昨天 ⋅ 0

版本控制工具

CSV , SVN , GIT ,VSS

颖伙虫 ⋅ 昨天 ⋅ 0

【2018.06.19学习笔记】【linux高级知识 13.1-13.3】

13.1 设置更改root密码 13.2 连接mysql 13.3 mysql常用命令

lgsxp ⋅ 昨天 ⋅ 0

LVM

LVM: 硬盘划分分区成物理卷->物理卷组成卷组->卷组划分逻辑分区。 1.磁盘分区: fdisk /dev/sdb 划分几个主分区 输入t更改每个分区类型为8e(LVM) 使用partprobe生成分区的文件:如/dev/sd...

ZHENG-JY ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部