浮点数类型的表现形式(未完待续)

浮点数的存储方式主要分为两种:定点存储和浮点存储。

定点存储:就是约定好整数位和小数位的长度。优点是计算效率高,缺点是存储不灵活。

浮点存储:用一部分二进制位存放小数点的位置信息,称为指数域,其他的数据位存储没有小数点时的数据和符号,称为数据域和符号域。下面主讲浮点存储。

在C/C++中,将浮点数强制转换为整形,不会采用四舍五入,而是舍弃小数部分(向0取整)。

float型浮点数虽然占4字节,但都是以8字节方式进行处理,作为参数或返回值时,传递的都是8字节数据。

一、浮点数的编码方式

浮点数编码转换采用的是IEEE规定的编码标准,将一个浮点数转换为二进制数,以科学计数法划分,将浮点数拆分为3部分:符号、指数、尾数。

①float型的IEEE编码

二、基本的浮点数指令

浮点数的操作不会用到通用寄存器,而会使用浮点协处理器的浮点寄存器。

浮点寄存器是通过栈结构实现的,由ST(0)~ST(7)共8个栈空间组成,每个浮点寄存器占8字节。每次使用浮点寄存器都是先使用ST(0),而不能越过ST(0)直接使用后面的寄存器。

浮点寄存器的使用就是压栈、出栈的过程。当ST(0)存在数据时,执行压栈操作后,ST(0)中的数据将装入ST(1)中,新数据放入ST(0)中。如果再次操作压栈,会将ST(1)中的数据装入ST(2)中,ST(0)中的数据装入ST(1)中,最后将新数据装入ST(0)中。以此类推,在8个浮点寄存器都有值的情况下继续向ST(0)中存放数据,这时会丢弃ST(7)中的数据。

IN表示操作数入栈,OUT表示操作数出栈。其他运算指令与普通运算指令类似,只需在前面加F即可。

时间: 2025-01-13 23:14:01

浮点数类型的表现形式(未完待续)的相关文章

Python语言基础与应用 (P23)上机练习:容器类型操作(未完待续)

上机练习:容器类型操作〉 列表.元组基本操作+, *, len(), [], in 1 Python 3.7.0 (default, Jun 28 2018, 08:04:48) [MSC v.1912 64 bit (AMD64)] :: Anaconda, Inc. on win32 2 Type "help", "copyright", "credits" or "license" for more informatio

一篇文章让Oracle程序猿学会MySql【未完待续】

一篇文章让Oracle DB学会MySql[未完待续] 随笔前言: 本篇文章是针对已经能够熟练使用Oracle数据库的DB所写的快速学会MySql,为什么敢这么说,是因为本人认为Oracle在功能性方面和难度方面都比MySql要高一些,所以精通Oracle的DB在学习MySql的时候,没有必要从头到尾再去搞一遍,只需要掌握两者的用法区别即可.故本篇文章就针对Oracle和MySql的区别来把MySql的知识掌握住,在文章中,实例都是MySql环境下的实例,而Oracle可能知识一句话来概括,所以

React v16-alpha 源码简读【未完待续】

一.物料准备 1.克隆react源码, github 地址:https://github.com/facebook/react.git 2.安装gulp 3.在react源码根目录下: $npm install $gulp default (建议使用node 6.0+) gulp将文件处理在根目录下的build文件夹中,打开build查看react的源码,结构清晰,引用路径明了 二.从生成 virtual dom 开始 react 生成一个组件有多种写法: es 5下:var Cp=React.

听风讲MVC丶 —— 一言不合就撸码 (未完待续······)

     希望你看了此小随 可以实现自己的MVC框架     也祝所有的程序员身体健康一切安好                                                                                                                                                ——久伴深海丶默 1.什么是前端控制器(font controller).Java Web中的前端控制器是应用的门面,

Linux 命令个人总结====== 未完待续 个人认为比较重要

Linux 命令个人总结====== 未完待续 man [功能说明]: 查看帮助 [语法格式]: man [123456789] 命令.文件. [选项参数]: 数字"1"表示用户命令,比如"ls" 数字"2"表示系统调用 数字"3"表示C语言库函数 数字"4"表示设备或特殊文件 数字"5"表示文件格式和规则 数字"6"表示游戏及其他 数字"7"表示

C++语言体系设计哲学的一些随想(未完待续)

对于静态类型语言,其本质目标在于恰当地操作数据,得到期望的值.具体而言,需要: (1)定义数据类型 你定义的数据是什么,是整形还是浮点还是字符.该类型的数据可以包含的值的范围是什么. (2)定义操作的含义 操作是严格数据类型相关的.操作表明了对了一个具有特定类型的数据,执行操作后产生什么样结果. =========================================== C++就是一个典型的静态类型语言.在C++中,无论是"数据类型"还是"操作",都分为

Python核心编程(第二版) 第二章习题答案 未完待续

2-2.程序输出.阅读下面的Python脚本.#!/usr/bin/env python1 + 2 * 4(a)你认为这段脚本是用来做什么的?(b)你认为这段脚本会输出什么?(c)输入以上代码,并保存为脚本,然后运行它,它所做的与你的预期一样吗?为什么一样/不一样?(d)这段代码单独执行和在交互解释器中执行有何不同?试一下,然后写出结果.(e)如何改进这个脚本,以便它能和你想象的一样工作?答:(a)这段脚本是用来计算表达式的值(b)脚本会输出9(c)保存为脚本,运行后没有输出.和自己预期不一样.

AutoMapper介绍(未完待续、部分没实现)

实体间转换工具.其实也可以用Json来实现同名属性.异名属性(用JsonProperty指明)的自动转换 最新版本6.11 需要使用vs2013以上.vs2012下载新版 nuget会遇到问题.只能旧版. 1 using AutoMapper; 2 using System; 3 using System.Collections.Generic; 4 using System.Linq; 5 using System.Web; 6 using System.Web.Mvc; 7 8 namesp

文件查找命令find (笔记)未完待续

之前所学的grep egrep fgrep 都是用来查找文本中的某个字符匹配的 现在来学一下查找文件命令 locate find locate 此命令是非实时查找文件,它是根据全系统文件数据库进行查找的, 仅用模糊匹配,非精确查找 locate filename 即可实现查找其它相关文件 但是注意有时候如果系统是刚安装的有可能还没建立此数据库,使用该命令会提示查找不到数据库 不过不用担心使用updatedb即可自动生成数据库,生成数据库的时候有时候会很慢,这个根据用户的 磁盘上所放的东西多少决定

JavaWeb ajax编程(未完待续)

1.Ajax 1.1Ajax的定义 Ajax:(Asynchronous JavaScript And XML)指异步 JavaScript 及 XML. 不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的 Web 应用程序的技术,是基于JavaScript.XML.HTML.CSS新用法. Ajax:只刷新局部页面的技术 JavaScript:更新局部的网页 XML:一般用于请求数据和响应数据的封装 XMLHttpRequest对象:发送请求到服务器并获得返回结果 CSS:美化页面