小数在计算机中为什么会有误差?说明机器数、码…
2018-06-17 20:05:03来源:未知 阅读 ()
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位)有效数字。那有效数字以后的就被忽略了。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:.NET中的属性
下一篇:.NET 中的DateTime
- PHP保留两位小数的几种方法 2019-08-16
- 03-c#入门(简易存款利息计算器v1.0) 2018-06-17
- C#中如何计算时间差? 2018-06-17
- 计算机基础知识学习 2018-06-17
- 基于语法分析器GOLD Parser开发的数学表达式计算器 2018-06-17
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash