首页 > 其他分享 >第3章计算机进行小数运算时出错的原因

第3章计算机进行小数运算时出错的原因

时间:2024-02-14 22:57:30浏览次数:33  
标签:表示 十六进制 运算 二进制 浮点数 小数点 出错 小数

使用二进制数表示小数
与二进制表示整数类似,二进制表示小数部分的转换方法也是小数位各数值乘以位权相加表示例如将1011.0011二进制小数转换为十进制数,转换过程如下

规律:0次方前面的位的位权按照1,2,3方式向左高位递增(小数点前)
0次方后面的位的位权按照﹣1,-2,-3方式向右低位递减(小数点后)
计算机计算小数出错的原因:有一些十进制数的小数无法转换成二进制数,只能取近似值
例如:小数点后4位用二进制数表示时的数值范围0.0000----0.1111,这里只能表示0.5,0.25,0.125,0.0625这4个二进制数小数点后面位权组合而成的小数,因此,部分中间的小数无法表示,只能取近似值,类似十进制中的循环小数
浮点数:用符号、尾数、基数、指数这4部分来表示的小数就是浮点数,在计算中因为内部只使用二进制,因此计算机中省略掉了基数,只使用符号、尾数、指数3部分表示浮点数
浮点数表现形式:
符号部分:占用一个数据位,该为=1表示负数,=0表示正数,数值的大小用尾数部分与指数部分表示
尾数部分:定义一种统一的正则表达式表示,常用将小数点前面的值固定位1的方式
指数部分:使用excess系统表现,主要是为了表示负数时使用符号位,通过折半中间范围值表示为0来区分,例如[-1,0,1]
二进制数与十六进制:
实际中由于二进制位数太多,通常也会使用十六进制进行表示,二进制的4位数表示一位十六进制
使用十六进制表示二进制小数时,小数点后四位也相当于十六进制一位,不够4位使用0填充二进制数的低位

标签:表示,十六进制,运算,二进制,浮点数,小数点,出错,小数
From: https://www.cnblogs.com/mzz18/p/18015776

相关文章

  • 计算机进行小数运算时出错的原因
       首先计算机计算也是会出现错误的,比如0.1累加100次应该为10,但若用计算机运算却得出的结果为10.000002,如图所示:   但为什么会出现错误计算呢?这是因为有一些十进制的小数无法转换成二进制数。或许先了解如何用二进制数表示小数更容易明白为什么无法转换。首先对于正......
  • 微分积分及其运算法则成对列举
         ......
  • 取模运算
    一、模运算的定义对于\(\forall~a\in\mathbb{R},~m\in(0,+\infty)\),求\(a\)除以\(m\)的余数的运算,就是取模运算,记作\(a~mod~m\)。规定\(0\leqa~mod~m\leqm-1\)。若\(a\)为负数,则\(a~\%~m\)可能小于\(0\)。此时,对结果进行\(a~\%~m+m\),使取模运算满足规定......
  • 第3章 计算机进行小数运算是出错的原因读后感
    计算机进行小数运算是出错的原因读后感在《程序是怎样跑起来的》这本书的第三章中,我找到了对于计算机进行小数运算时出错原因的解答。这一章节深入地探讨了计算机处理小数的细节,以及浮点数运算中可能出现的误差和......
  • 第三章:计算机进行小数运算时出错的原因
    在阅读《程序是怎样跑起来的》第3章“计算机进行小数运算时出错的原因”后,我深刻地认识到了计算机在进行浮点数运算时的局限性和潜在风险。这一章内容让我明白了,为什么在实际编程过程中,我们经常会遇到浮点数运算的误差问题。首先,我了解到计算机使用二进制来表示所有的数据,包括浮......
  • 编程新手必学:Java运算符详解
    编程新手必学:Java运算符详解编程,这种强大的艺术形式,给我们带来了无穷的可能性。就像数学中的加减乘除,程序设计中也有一种类似的工具:运算符。作为一种编程语言,Java提供了一系列的运算符来执行各种基础和复杂的操作。在本文中,我将尝试解释Java中的各种运算符,并提供一些代码示例来说......
  • Java 数学运算与条件语句全解析
    JavaMathJava的Math类拥有许多方法,允许您在数字上执行数学任务。常用方法:Math.max(x,y):找到x和y的最大值Math.min(x,y):找到x和y的最小值Math.sqrt(x):返回x的平方根Math.abs(x):返回x的绝对值Math.random():返回一个介于0.0和1.0之间的随机......
  • Java 数学运算与条件语句全解析
    JavaMathJava的Math类拥有许多方法,允许您在数字上执行数学任务。常用方法:Math.max(x,y):找到x和y的最大值Math.min(x,y):找到x和y的最小值Math.sqrt(x):返回x的平方根Math.abs(x):返回x的绝对值Math.random():返回一个介于0.0和1.0之间的随......
  • 运算符重载
    运算符重载本质重新定义运算符的操作,返回自定义的结果。对于Aoperatorsign(Bres1,Cres2)B类型的res1和C类型的res2,进行sign操作,返回一个类型是A的结果。1.一元运算符重载(1)重载++classstudent{public:inta;student(inta){......
  • 位运算
    对二进制中的每一位进行逻辑操作,而不考虑整个数的数值大小与位运算有关的特殊数据结构如[[树状数组]]或[[01线性基]]一般对正整数进行运算几种位运算按位与AND&只有两个位都为1时,结果才为1,否则为0。两个数字做与运算,结果不会变大。做如下变换:1001911011......