首页 > 代码库 > 浮点数类型的表现形式(未完待续)
浮点数类型的表现形式(未完待续)
浮点数的存储方式主要分为两种:定点存储和浮点存储。
定点存储:就是约定好整数位和小数位的长度。优点是计算效率高,缺点是存储不灵活。
浮点存储:用一部分二进制位存放小数点的位置信息,称为指数域,其他的数据位存储没有小数点时的数据和符号,称为数据域和符号域。下面主讲浮点存储。
在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即可。
浮点数类型的表现形式(未完待续)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。