浮点数的阶码,尾数与移码

浮点数的阶码,尾数与移码阶码与尾数 十进制中通常一个浮点数可以用科学技术法来表示 举例 306 5 可以表示为 0 3065 103 其中 是符号 指数 3 是阶或称阶码 0 3065 是小数部分 nbsp nbsp 左右段非 0 包起来的部分是有效值 nbsp 这里的有效值是 3065 小数部分也称为尾数 显然 3065 也是尾数 3 87 的话 387 是有效值 nbsp 87 是尾数 nbsp nbsp nbsp 因为他可以表示为 3 065 102 nbsp nbsp 也

【阶码与尾数】

十进制中通常一个浮点数可以用科学技术法来表示,举例:-306.5可以表示为-0.3065*103

其中 -是符号,指数3是阶或称阶码,0.3065是小数部分   左右段非0包起来的部分是有效值  这里的有效值是3065,小数部分也称为尾数,显然3065也是尾数(-3.87的话 387是有效值  87是尾数)。

      因为他可以表示为-3.065*102  也可以表示为-0.03065*104  等,小数部分可以左右“浮动”  但不管小数部分怎么移动,他的有效值是不变的,都是3065 (不过尾数是变化的)。

【移码】

      于是两个浮点数相加就先要通过小数点的左右浮动,将阶码对齐,然后进行尾数相加。

S为符号位,Exp为指数位,Fraction为有效数位。 指数部分即使用所谓的偏正值形式表示(也就是移码),实际值为表示值与一个固定值(32位单精度的情况是127)的和。采用这种方式表示的目的是简化比较。因为,指数的值可能为正也可能为负,如果采用补码表示的话,全体符号位S和Exp自身的符号位将导致不能简单的进行大小比较。正因为如此,指数部分通常采用一个无符号的正数值存储。

单精度的指数部分是-126~+127加上127 ,指数值的大小从1~254(0和255是特殊值)。浮点小数计算时,指数值减去偏正值将是实际的指数大小。

【浮点数的二进制转换】

       在计算机内部,浮点数都是以二进制表示的,所以 对于十进制浮点数,要先转换为二进制浮点数,然后分两步,整数部分的转换,采用(“除2取余法” )      小数部分采用 (“乘2取整法”)即把小数部分乘2取整,在把取完整数好留下的小数部分在乘2取整,直到小数点后第一位为0,以此类推。

【浮点数的二进制转换成十进制】

       与十进制转换为二进制相反,对于浮点数,将小数部分逐位乘2的-n次方,n为小数点后的位数。如 二进制0.101转换为十进制,即1*(1/2)+ 0 *(1/4) + 1*(1/8) = 0.625

【规格化】

为了使有效值和尾数能够统一,在空间上表达更有效率 有必要将所有浮点数规格化,即浮点数通过调整阶码,写成小数点前不含有有效数字,小数点后第一位由非0数字表示,举例-306.5规格化为-0.3065*103 。

二进制浮点数的规格化方法:

        通过调整小数点的阶码使得该数的有效值在1和2之间,既二进制浮点数的整数部分为1,

例如:0.8125 = 0.1101(2) = 1.101*2(-1)

【举例】

请将十进制数0.07525表示为规格化浮点数,阶码(包括阶符)为4位二进制位,尾数(包括)尾符为8位二进制数,均采用补码形式。

0.07525表示成二进制是:
0.07525*2=0.1505 0
0.1505*2=0.301 0
0.301*2=0.602 0
0.602*2=1.204 1
0.204*2=0.408 0
0.408*2=0.816 0
0.816*2=1.632 1
0.632*2=1.264 1
0.264*2=0.528 0
0.528*2=1.056 1
0.000=1.001101*2^-3
由于尾数(包括)尾符为8位二进制数,所以,0.07525(十进制)=1.001101*2^-3(二进制)











阶码=-3+127=124,符号位 指数部分 尾数部分:0 0 000000000000


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/204185.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午8:48
下一篇 2026年3月19日 下午8:48


相关推荐

  • 权重衰减(weight decay)与学习率衰减(learning rate decay)

    权重衰减(weight decay)与学习率衰减(learning rate decay)“微信公众号”1.权重衰减(weightdecay)L2正则化的目的就是为了让权重衰减到更小的值,在一定程度上减少模型过拟合的问题,所以权重衰减也叫L2正则化。1.1L2正则化与权重衰减系数L2正则化就是在代价函数后面再加上一个正则化项:其中C0代表原始的代价函数,后面那一项就是L2正则化项,它是这样来的:所有参数w的平方的和,除以训练集的样本大小n。λ就是正则项系数,权衡正则项与C0项的比…

    2022年6月12日
    39
  • taskscheduler java_Spring TaskScheduler使用实例解析

    taskscheduler java_Spring TaskScheduler使用实例解析这篇文章主要介绍了SpringTaskScheduler使用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下TaskScheduler提供对计划任务提供支持;使用@EnableScheduling开启计划任务支持使用@Scheduled来注解计划任务的方法;示例演示后台间断执行任务和定时计划任务计划任务的配置@Configuration@…

    2022年10月11日
    4
  • JVM之内存结构详解

    JVM之内存结构详解对于开发人员来说,如果不了解Java的JVM,那真的是很难写得一手好代码,很难查得一手好bug。同时,JVM也是面试环节的中重灾区。今天开始,《JVM详解》系列开启,带大家深入了解JVM相关知识。我们不能为了面试而面试,但是学习会这些核心知识你必定会成为面试与工作中“最亮的一颗星”。本系列首发于微信公众号“程序新视界”。下面,开启我们的第一篇文章《JVM之内存结构详解》。学习也是要讲究方式方法…

    2022年6月11日
    26
  • PyQt5基本控件详解之QLineEdit(四)

    PyQt5基本控件详解之QLineEdit(四)QLineEditQLi 类中常用的方法如下表方法描述 setAlignment 按固定值方式对齐文本 Qt AlignLeft 水平方向靠左对齐 Qt AlignRight 水平方向靠右对齐 Qt AlignCenter 水平方向居中对齐 Qt AlignJustify 水平方向调整间距两

    2026年3月19日
    4
  • java snmp walk,SNMPWALK 用法详解

    java snmp walk,SNMPWALK 用法详解(1)Net-SNMPSNMPWALK(1)NAMEsnmpwalk-communicateswithanetworkentityusingSNMPGETNEXTrequests.SYNOPSISsnmpwalk[APPL…

    2022年6月29日
    34
  • 计蒜客T1098:大整数加法(高精度加法详解)

    计蒜客T1098:大整数加法(高精度加法详解)高精度算法 属于处理大数字的数学计算方法 在一般的科学计算中 会经常算到小数点后几百位或者更多 当然也可能是几千亿几百亿的大数字 一般这类数字我们统称为高精度数 高精度算法是用计算机对于超大数据的一种模拟加 减 乘 除 乘方 阶乘 开方等运算 对于非常庞大的数字无法在计算机中正常存储 于是 将这个数字拆开 拆成一位一位的 或者是四位四位的存储到一个 数组 中 用一个数组去表示一个数字 这样这个数字就被称为是 高精度数 高精度算法就是能处理高精度数各种运算的算法 但又因其特殊性 故从普通数的算

    2026年3月26日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号