首页 > 其他分享 >st 浮点栈寄存器的存储方式

st 浮点栈寄存器的存储方式

时间:2022-10-12 01:44:06浏览次数:78  
标签:0000 尾数 st 1111 浮点 寄存器 位为

问题描述:

​ 我把1转成double压入st(0)中,按道理应该是3FF0000000000000,但x64dbg显示的是3FFF800000000000,我想用windbg看看是不是x64dg显示错误

过程:

​ 我用windbg看了st(0),却发现结果也是3FFF800000000000,看来并不是x64dbg有问题,那么就有可能是st浮点栈寄存器并没有按照IEEE标准编码,随后我将2、3、4都压入st(0),观察值变化终于找到了规律

结果:

​ st浮点栈寄存器的双精度浮点编码方式是最高位为符号位,指数范围用15位表示,剩下48位表示尾数,但是和IEEE标准不同的是,最高位虽然恒为1,但也要加到尾数部分。

eg: 1 转成 双精度浮点

  1. 将1转成二进制数

    1 = 1.0

  2. 因为1是正数,所以符号为0

​ 指数为零 ,指数位为 32,767+0 = 011111111111111

​ 尾数部分为100000000000000000000000000000000000000000000000

  1. 转化为十六进制为3FFF800000000000

补充: IEEE标准

IEEE标准的双精度浮点编码方式是最高位为符号位,指数范围用11位表示,剩下位数表示尾数,最高位1省略
例子:3F84000000000000 表示多少
将值转为二进制 ‭0011 1111 1000 0100 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000

符号位

符号位为最高位 0 表示正数

指数位

011 1111 1000 十进制位为1016 指数的为011 1111 1000 - 011 1111 1111 = -7
尾数部分
0100 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
将省略的最高位补上
1.0100 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
转换位十进制
12^0 + 12^-2 = 1.25

所以结果为1.25 * 2^-7 = 0.009765625

标签:0000,尾数,st,1111,浮点,寄存器,位为
From: https://www.cnblogs.com/czlnb/p/15451139.html

相关文章

  • GeoTrust
    GeoTrust 播报编辑讨论上传视频以证书为主营业务的公司本词条缺少概述图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!GeoTrust成立于2001年,是一家以证书为主......
  • elasticsearch聚合查询
    聚合查询分三类:桶聚合、指标聚合、管道聚合。1:桶聚合:通俗的讲就是按某个属性分类,统计该属性数量GEThow2java/product/_search//查询每个地方商品数量{"size":0,......
  • 用Stream来优化老代码,就是爽
    Java8的新特性主要是Lambda表达式和流,当流和Lambda表达式结合起来一起使用时,因为流申明式处理数据集合的特点,可以让代码变得简洁易读。01流如何简化代码如果有一个需......
  • 使用 Stream API 高逼格 优化 Java 代码
    Java8的新特性主要是Lambda表达式和流,当流和Lambda表达式结合起来一起使用时,因为流申明式处理数据集合的特点,可以让代码变得简洁易读放大招,流如何简化代码如果有一个需求,需......
  • FastDFS
    一、FastDFS简介FastDFS是一个轻量级的开源分布式文件系统,纯C实现,所以在Linux中部署时要引入C语言包主要解决了大容量的文件存储和高并发访问的问题,文件存取时实现了负载......
  • 【Django-rest-framework框架】 第09回 内置类,过滤类的其他使用,全局异常处理,接口文档
    目录1.内置认证类,权限类,频率类1.1内置的认证类:1.2内置权限类1.3内置的频率类2.django的配置文件每个配置项的作用3.过滤类的其它使用3.1django-filter3.1.1继承精......
  • 【自然语言处理(NLP)】基于LSTM的命名实体识别
    【自然语言处理(NLP)】基于LSTM的命名实体识别作者简介:在校大学生一枚,华为云享专家,阿里云专家博主,腾云先锋(TDP)成员,云曦智划项目总负责人,全国高等学校计算机教学与产业实践......
  • CF1383C String Transformation 2
    linkSolution已经被图论虐穿了。。。/kk首先不难看出对于同一位置,可以用s1的字符往s2的字符连边,就成了一个大小为\(20\)的有向图。然后我们发现其实我们是要构建......
  • ArrayListAndLinkedList
    集合一:集合框架对象的容器,实现了对象常用的操作,类似数组功能。二:集合和数组的区别数组长度固定,集合长度不固定数组可以存储基本类型和引用类型,集合只能存储引用类......
  • ActiveMQ启动报错(端口被占用):java.lang.IllegalStateException
    ActiveMQ端口被异常占用这个问题太恶心了,启动Tomcat,默认的端口是8080,死活启动不了,看着报错信息就是端口被占用,网上一直搜索解决办法:netstat-aon|findstr"8080" 然......