首页 > 其他分享 >浮点数

浮点数

时间:2023-07-29 15:55:14浏览次数:35  
标签:表示 0000 指数 尾数 浮点数 127

1、介绍
一般,在计算机中的整数数值可以基于补码规则进行表示为比特,而小数择是基于浮点数规则表示为比特。
浮点数规则,本质上是科学计数法的思想,将十进制小数转为二进制数,对一组连续比特位划分,分别表示该二进制数的符号位、指数和底数信息。

注意,在固定长度的比特位中,符号位一般不变,占1位,而指数和底数信息所占的位数是一个竞争关系,会影响所表达的范围和精确度。
之前,各组织分别使用自己的浮点数规则,而1985年,统一的浮点数规则IEEE-754发布,被广泛使用。

2、IEEE-754
该标准采用S,E,M三部分来表示一个数N。主要有单精度float占32位,和双精度double占64位。
(1)符号位S
0表示正数,1表示负数
(2)指数E
float占8位,值的范围[0,255],取中位127表示指数E=0,实际的表示值为127+E,即E的取值范围为[-127,128]
double占11位,取中位1023表示指数E=0,即E的取值范围为[-1023,1024]
(3)尾数M
float占23位,double占52位
尾数实际表达的是1.M,有效位要增加1位小数点前的1

3、表示
将一个十进制小数N表达为浮点数float形式,比如32.25
(1)将N表达为二进制形式,32.25=10 0000.01
(2)科学计数法表示,10 0000.01=1.0 0000 01*2^5
(3)取出尾数0 0000 01,该部分作为高位,其后补0.比如单精度的尾数共占23位
(4)取出指数5,127+5=132,表示为1000 0100
(5)合并,最终表示为0 1000 0100 0 0000 01 0000 0000 0000 0000

4、其他规定
指数 E 非全 0 且非全 1:规格化数字,按上面的规则正常计算
指数 E 全 0,尾数非 0:非规格化数,尾数隐藏位不再是 1,而是 0(M = 0.xxxxx),这样可以表示 0 和很小的数
指数 E 全 1,尾数全 0:正无穷大/负无穷大(正负取决于 S 符号位)
指数 E 全 1,尾数非 0:NaN(Not a Number)

标签:表示,0000,指数,尾数,浮点数,127
From: https://www.cnblogs.com/wd404/p/17311959.html

相关文章

  • PHP浮点数运算的问题
    $a=0.1;$b=0.7;$c=0.5;$d=0.9;if($a+$b==0.8){echo'==';}else{echo'!=';}//!=if($a+$c==0.6){echo'==';}else{echo'!=';}//==if($a+$d==1){echo'==';}else{echo'!=';......
  • 75.怎样判断两个浮点数是否相等?
    75.怎样判断两个浮点数是否相等?对两个浮点数判断大小和是否相等不能直接用==来判断,会出错!明明相等的两个数比较反而是不相等!对于两个浮点数比较只能通过相减并与预先设定的精度比较,记得要取绝对值!浮点数与0的比较也应该注意。与浮点数的表示方式有关。参考资料来源:阿秀......
  • 浮点数二分模板
    题目给定一个浮点数$n$,求它的三次方根。输入格式共一行,包含一个浮点数$n$。输出格式共一行,包含一个浮点数,表示问题的解。注意,结果保留$6$位小数。数据范围$−10000≤n≤10000$输入样例:$1000.00$输出样例:$10.000000$思路浮点数二分可以直接分,无需考虑边界情况......
  • 浮点数-Float-Double转二进制在线工具
    浮点数-Float-Double转二进制Float转二进制,Double转浮点数-Float-Double转二进制https://tooltt.com/floatconverter/在线单双精度(Float,Double)浮点数转二进制浮点数,是属于有理数中某特定子集的数的数字表示,在计算机中用以近似表示任意某个实数。具体的说,这个实数由一......
  • 编程初学者入门5_键盘输入5个人的身高(米),求他们的平均身高(米)。(C的没问题,试着用Java写
    写在前面此系列博客为牛客网编程初学者入门题目小结,题目很基础不常用的知识容易遗忘,为了边复习c语言和学习Java,后面系列博客将采用c、c++、Java双语言版记录现在位置(72/140),虽然我走的很慢,但我仍在前进~题目描述从键盘输入5个人的身高(米),求他们的平均身高(米)。输入描述:一行,连续输......
  • 计算机计算浮点数出现的误差
    foriinrange(20):print(f"0.1*{i}={0.1*i}")0.1*0=0.00.1*1=0.10.1*2=0.20.1*3=0.300000000000000040.1*4=0.40.1*5=0.50.1*6=0.60000000000000010.1*7=0.70000000000000010.1*8=0.80......
  • 整数和浮点数
    整数浮点数的运算步骤浮点数的加减运算一般由以下五个步骤完成:对阶、尾数运算、规格化、舍入处理、溢出判断一、对阶所谓对阶是指将两个进行运算的浮点数的阶码对齐的操作。对阶的目的是为使两个浮点数的尾数能够进行加减运算。因为,当进行Mx·2Ex与My·2Ey加减运算时,只有使......
  • 和利时MACSV6.5.3中4byte数据合并转换为单精度浮点数float
    和利时MACSV6.5.3中4byte数据合并转换为单精度浮点数float代码截图验证完整可导入代码复制到记事本中,保存为xml文件,在和利时M6AutoThink中导入<?xmlversion="1.0"encoding="ISO-8859-1"?><pou> <path><![CDATA[USER]]></path> <name>IEEE754</name&g......
  • Looksery Cup 2015-H. Degenerate Matrix(浮点数二分)
    原题链接H.DegenerateMatrixtimelimitpertestmemorylimitpertestinputoutputdeterminant ofamatrix 2 × 2degeneratenorm ||A|| ofamatrix AYouaregivenamatrix .Consideranydegeneratemat......
  • c#中十六进制字符串转单精度浮点数
    1varcountBytes=newbyte[]{66,12,25,217};2varcountHexStr=ToHexStrFromByte(countBytes.ToArray());3uintnum=uint.Parse(countHexStr,System.Globalization.NumberStyles.AllowHexSpecifier);4byte[]floatVals......