当前位置: 首页 > news >正文

小数在计算机中为什么会有误差?说明机器数、码制、浮点数、以及数制转换的一些问题...

1.常用的数制

十进制  0~9

八进制 0~7

二进制 0~1

十六进制 0~F

 

2.十进制 转 各个进制

   方法 : 除以基数取余反向

 

3. 2进制  8进制  16进制 转十进制

二进制

___________________________

  2^3     2^2    2^1     2^0

   1         0          0         1         X

  =8+ 1 = 9

 

八进制

———————————--------------

8^1    8^0

1          7

=1*8 + 7*1 = 15

 

十六进制类似。 

 

4.二进制转 十六进制  八进制

二转八

三位一组   结果并在一起

二转十六

四位一组   结果合并在一起

 

5. 整数在内存中的存储,采用二进制

                   符号位

原码   正数      0

          负数       1

反码   正数      和原码相同

          负数      在原码基础上,符号位不变,各个位取反

补码   正数     和源码相同

          负数      在反码基础上,符号位不变,末位 +1

案例↓↓↓↓↓↓

————————————————————————————

                   原码                 反码              补码

5         0000  0101        0000 0101       0000 0101

-5        1000   0101       1111  1010      1111 1011

 

6. 机器数 和 真值

用“+”、“-”号加绝对值来表示数值的大小,用这种形式表示的数值在计算机中称为“真值”

符号数码化后,二进制数的最高位“0”表示正号,“1”表示负号,用这种形式表示的数值在计算机中称为“机器数”

机器数中小数点隐含不占位

机器数       有符号            纯整数   点在最低位之后

                                        纯小数   点在符号位之后,最高位之前。  

                 无符号            纯整数    点在最低位之后

                                        纯小数    点在最高位之前

 

7.小数的存储 

   计算机中小数以二进制(浮点数)形式存储。

   首先是一个十进制小数形式,转化成二进制的计算案例。

————————————————————————————————

0.8125 转换成二进制

  其实这种情况是赶巧了得到一个确切的值。

————————————————————————————————

但对于某些特殊情况是这样的

 

8.浮点数产生误差的原因

  有两钟情况,会产生误差

   1)以二进制保存浮点数,所以一些原本有限位的小数,按照上面方法运算以后,可能变成一个无限循环的小数。

————————————————————————————————

   (十进制)0.9转成2进制是无限循环小数0.1110011001100110011...

————————————————————————————————

2)计算机保存浮点数的精度有限,例如float可以保留十进制最多7位(二进制23位)有效数字,double 可以保留十进制15~16位(二进制52位)有效数字。那有效数字以后的就被忽略了。

转载于:https://www.cnblogs.com/mcad/p/4187559.html

相关文章:

  • BMap 自定义icon(小车)与点位置偏差
  • hibernate学习2_简单hibernate实现
  • linux文件acl权限简单设置
  • C#。4.1数组的应用
  • Luogu P1552 [APIO2012]派遣 主席树
  • 深入浅出设计模式——装饰模式(Decorator Pattern)
  • Centos 7.5安装Grafana5.3结合Zabbix3.4实现可视化图形
  • 部分金融常识
  • Python 调用 C 语言 so
  • vue.js 是如何做到数据响应的
  • 计算机科学论文写作5-写硕士论文
  • react native中使用echarts
  • JQuery中$.ajax()方法参数详解
  • 理解 JavaScript Mutation 突变和 PureFunction 纯函数
  • table tr,td,div ... focus
  • [译] React v16.8: 含有Hooks的版本
  • [译]CSS 居中(Center)方法大合集
  • 5、React组件事件详解
  • Brief introduction of how to 'Call, Apply and Bind'
  • DataBase in Android
  • Druid 在有赞的实践
  • JavaScript中的对象个人分享
  • js操作时间(持续更新)
  • React组件设计模式(一)
  • vue:响应原理
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • webgl (原生)基础入门指南【一】
  • 百度地图API标注+时间轴组件
  • 第13期 DApp 榜单 :来,吃我这波安利
  • 记录:CentOS7.2配置LNMP环境记录
  • 来,膜拜下android roadmap,强大的执行力
  • 前端之React实战:创建跨平台的项目架构
  • 在Docker Swarm上部署Apache Storm:第1部分
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • ​Spring Boot 分片上传文件
  • #使用清华镜像源 安装/更新 指定版本tensorflow
  • $.ajax()参数及用法
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (非本人原创)史记·柴静列传(r4笔记第65天)
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (一) storm的集群安装与配置
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • (转)自己动手搭建Nginx+memcache+xdebug+php运行环境绿色版 For windows版
  • (转载)在C#用WM_COPYDATA消息来实现两个进程之间传递数据
  • . Flume面试题
  • .NET中两种OCR方式对比
  • [] 与 [[]], -gt 与 > 的比较
  • [04]Web前端进阶—JS伪数组
  • [20170705]lsnrctl status LISTENER_SCAN1
  • [BUUCTF 2018]Online Tool
  • [C/C++]_[初级]_[关于编译时出现有符号-无符号不匹配的警告-sizeof使用注意事项]
  • [C]编译和预处理详解
  • [CareerCup] 14.5 Object Reflection 对象反射