《数值分析(原书第2版)》—— 0.2 二进制数字

0.2 二进制数字

为了准备下一节中对于计算机算术的详细研究,我们需要理解二进制数字系统.十进制数字中使用的基数10被替换为2,用于在计算机中保存数字并简化计算机中诸如乘法和加法等计算.整个过程颠倒过来,就可以得到输出的十进制的结果.在本节中,我们讨论二进制和十进制数字转化的方式.
二进制数字可以表示为:…b2b1b0.b-1b-2…5其中每个二进制数字,或者位,要么是0要么是1.基为10的数字等价于…b222+b121+b020+b-12-1+b-22-2…例如,十进制数字4以2为基可以表示为(100.)2,3/4可以表示为(0.11)2.
0.2.1 将十进制转化为二进制
十进制数字53记作(53)10,用于强调其使用10为基.将一个数转化为二进制,最简单的方式是将数字的整数部分和小数部分分别对待.十进制数字(53.7)10=(53)10+(0.7)10,我们将整数部分和小数部分分别转化为二进制,再把结果组合起来.
整数部分.在将十进制数转化为二进制数的过程中,将整数连续被2除保留余数.余数可能是0或者1,从小数点开始进行记录(或者更准确地称作基数(radix))并向左移动.对于十进制数字(53)10,有如下计算53÷2=26 余1
26÷2=13 余0
13÷2=6 余1
6÷2=3 余0
3÷2=1 余1
1÷2=0 余1因而,十进制数可以转化为二进制数字110101,记做(53)10=(110101.)2.可以检查一下结果110101=25+24+22+20=32+16+4+1=53.
小数部分.将前面的计算过程反过来就可以将十进制小数(0.7)10转化为二进制.将小数部分不断乘2并记录整数部分,从小数点开始并向右移动.0.7×2=0.4+1
0.4×2=0.8+0
0.8×2=0.6+1
0.6×2=0.2+1
0.2×2=0.4+0
0.4×2=0.8+0
注意到4步之后,整个过程出现重复,并且会以完全相同的形式无穷尽地重复下去.因而(0.7)10=(0.1011001100110…)2=(0.10110)2其中上横线标记用于表示无穷重复的位数.把两部分放在一起,我们得到(53.7)10=(110101.10110)260.2.2 将二进制转化为十进制
把二进制转化为十进制,最好仍将整数部分和小数部分分别计算.
整数部分.如同前面我们可以简单地将2的幂叠加得到对应的十进制数.二进制数(10101)2可以简单计算为1·24+0·23+1·22+0·21+1·20=(21)10  小数部分.如果小数部分有限(有限的以2为基的展开),则以相同方式进行.例如(0.1011)2=12+18+116=111610当小数部分不是以2为基的有限展开时,问题变得复杂.将无穷重复的二进制小数转化为十进制有不同的方法.一种简单的方法是利用2乘的平移性质.
例如,将x=(0.1011)2转化为十进制.把x和24相乘,意味着在二进制中向左平移4位.然后减去原始的x:24x=1011.1011
x=0000.1011相减得到(24-1)x=(1011)2=(11)10然后求解x,找出十进制数,得到x=(0.1011)2=11/15.
另外一个例子,假设分数部分没立即重复,例如x=0.10101.和22乘平移到y=22x=10.101.y的分数部分,记做z=0.101,如前面所述进行计算:23z=101.101
z=000.101因而,7z=5,y=2+5/7,x=2-2y=19/28为十进制数.为了检查结果,将十进制数19/28转化为二进制数,并和初始的x进行比较.
二进制数是计算机计算的基石,但是二进制数字很长并不利于人们理解.有时利用基16可以更加容易表示数字.十六进制数用16个数字0,1,2,…,9,A,B,C,D,E,F表示.每个十六进制数字可以用4位来表示.因而(1)16=(0001)2,(8)16=(1000)2,和(F)16=(1111)2=(15)10.在下一节中,将会描述使用MATLAB的format hex指令表达机器数.
0.2节习题
1.计算十进制整数的二进制表达.(a) 64 (b) 17 (c) 79 (d) 227
2.计算十进制整数的二进制表达.(a) 1/8 (b) 7/8 (c) 35/16 (d) 31/64
3.将下面十进制数转化为二进制.用上横线表示无穷的二进制小数位.
(a) 10.5 (b) 1/3 (c) 5/7 (d) 12.8 (e) 55.4 (f) 0.1
4.将下面十进制数转化为二进制.
(a) 11.25 (b) 2/3 (c) 3/5 7(d) 3.2 (e) 30.6 (f) 99.9
5.找到π的前15位二进制表达.
6.找到e的前15位二进制表达.
7.将下面二进制数转化为十进制:
(a) 1010101 (b) 1011.101 (c) 10111.01(d) 110.10(e) 10.110(f) 110.1101(g) 10.0101101(h) 111.1
8.将下面二进制数转化为十进制:
(a) 11011 (b) 110111.001 (c) 111.001(d) 1010.01(e) 10111.10101(f) 1111.010001

时间: 2024-10-03 13:39:41

《数值分析(原书第2版)》—— 0.2 二进制数字的相关文章

Java核心技术 卷Ⅰ 基础知识(原书第10版)

Java核心技术系列 Java核心技术 卷Ⅰ 基础知识 (原书第10版) Core Java Volume I-Fundamentals (10th Edition) [美] 凯S.霍斯特曼(Cay S. Horstmann) 著 周立新 陈 波 叶乃文 邝劲筠 杜永萍 译 图书在版编目(CIP)数据 Java核心技术 卷Ⅰ 基础知识(原书第10版) / (美)凯S. 霍斯特曼(Cay S. Horstmann)著:周立新等译. -北京:机械工业出版社,2016.8 (Java核心技术系列) 书

ROS机器人程序设计(原书第2版).

机器人设计与制作系列 ROS机器人程序设计 (原书第2版) Learning ROS for Robotics Programming,Second Edition 恩里克·费尔南德斯(Enrique Fernández) 路易斯·桑切斯·克雷斯波(Luis Sánchez Crespo) 阿尼尔·马哈塔尼(Anil Mahtani) 亚伦·马丁内斯(Aaron Martinez) 著 刘锦涛 张瑞雷 等译 图书在版编目(CIP)数据 ROS机器人程序设计(原书第2版) / (西)恩里克·费尔南

《机器学习与R语言(原书第2版)》一2.3 探索和理解数据

本节书摘来自华章出版社<机器学习与R语言(原书第2版)>一书中的第2章,第2.3节,美] 布雷特·兰茨(Brett Lantz) 著,李洪成 许金炜 李舰 译更多章节内容可以访问"华章计算机"公众号查看. 2.3 探索和理解数据 在收集数据并把它们载入R数据结构以后,机器学习的下一个步骤是仔细检查数据.在这个步骤中,你将开始探索数据的特征和案例,并且找到数据的独特之处.你对数据的理解越深刻,你将会更好地让机器学习模型匹配你的学习问题. 理解数据探索的最好方法就是通过例子.在

《Unity着色器和屏幕特效开发秘笈(原书第2版)》一2.4 给着色器添加纹理

本节书摘来自华章出版社<Unity着色器和屏幕特效开发秘笈(原书第2版)>一书中的第2章,第2.4节,作者 [英]艾伦朱科尼(Alan Zucconi) [美]肯尼斯拉默斯(Kenneth Lammers),更多章节内容可以访问"华章计算机"公众号查看 2.4 给着色器添加纹理 在模拟现实效果方面,纹理可以让着色器迅速生动起来.为了高效使用纹理,我们需要理解二维图像是如何映射成三维模型的.这个映射过程称为纹理映射.为了进行纹理映射,我们需要在着色器和想要应用纹理的三维模型上

《机器学习与R语言(原书第2版)》一3.2 例子—用kNN算法诊断乳腺癌

本节书摘来自华章出版社<机器学习与R语言(原书第2版)>一书中的第3章,第3.2节,美] 布雷特·兰茨(Brett Lantz) 著,李洪成 许金炜 李舰 译更多章节内容可以访问"华章计算机"公众号查看. 3.2 例子-用kNN算法诊断乳腺癌 定期的乳腺癌检查使得疾病在引起明显的症状之前就得到诊断与治疗.早期的检测过程包括检查乳腺组织的异常肿块.如果发现一个肿块,那么就需要进行细针抽吸活检,即利用一根空心针从肿块中提取细胞的一个小样品,然后临床医生在显微镜下检查细胞,从而确

《Unity着色器和屏幕特效开发秘笈(原书第2版)》一2.6 法线映射

本节书摘来自华章出版社<Unity着色器和屏幕特效开发秘笈(原书第2版)>一书中的第2章,第2.6节,作者 [英]艾伦朱科尼(Alan Zucconi) [美]肯尼斯拉默斯(Kenneth Lammers),更多章节内容可以访问"华章计算机"公众号查看 2.6 法线映射 三维模型中的每一个三角形都有一个面朝方向(facing direction),顾名思义指的是三角形的朝向.这个方向通常用一个从三角形中心出发垂直于三角形表面的箭头表示.面朝方向对于光线在物体表面反射的时候起

《Unity着色器和屏幕特效开发秘笈(原书第2版)》一2.9 打包和混合纹理

本节书摘来自华章出版社<Unity着色器和屏幕特效开发秘笈(原书第2版)>一书中的第2章,第2.9节,作者 [英]艾伦朱科尼(Alan Zucconi) [美]肯尼斯拉默斯(Kenneth Lammers),更多章节内容可以访问"华章计算机"公众号查看 2.9 打包和混合纹理 纹理不仅在存储许多像素颜色数据的时候非常有用,同时还可以用来存储x和y方向的一堆像素集合以及其RGBA通道.可以将几个图像打包成一个RGBA纹理,然后通过着色器代码来提取每一个R,G,B,A组件作为单

《Unity着色器和屏幕特效开发秘笈(原书第2版)》一1.3 从Unity 4向Unity 5迁移

本节书摘来自华章出版社<Unity着色器和屏幕特效开发秘笈(原书第2版)>一书中的第1章,第1.3节,作者 [英]艾伦朱科尼(Alan Zucconi) [美]肯尼斯拉默斯(Kenneth Lammers),更多章节内容可以访问"华章计算机"公众号查看 1.3 从Unity 4向Unity 5迁移 不可否认,电子游戏中的图像技术在过去的10年中发生了翻天覆地的变化.每一个包含前沿技术的新游戏的面世,带给我们的都是无与伦比的实时超现实体验.同样,在Unity中着色器及其相关技

《面向对象的思考过程(原书第4版)》一 第3章 高级的面向对象概念

本节书摘来自华章出版社<面向对象的思考过程(原书第4版)>一书中的第3章,第3.1节,[美] 马特·魏斯费尔德(Matt Weisfeld) 著黄博文 译更多章节内容可以访问"华章计算机"公众号查看. 第3章 高级的面向对象概念 第1章和第2章讲述了面向对象的基本概念.在开始学习关于构建面向对象系统的一些具体设计问题之前,我们需要更进一步了解面向对象的一些概念,比如构造函数.操作符重载以及多重继承.我们也会讲述错误处理技术以及面向对象的设计中作用域的重要性.其中一些概念可能

机器学习与R语言(原书第2版)》一1.4 实践中的机器学习

本节书摘来自华章出版社<机器学习与R语言(原书第2版)>一书中的第1章,第1.4节,美] 布雷特·兰茨(Brett Lantz) 著,李洪成 许金炜 李舰 译更多章节内容可以访问"华章计算机"公众号查看. 1.4 实践中的机器学习 到目前为止,我们已经讲述了理论上机器学习是如何工作的.为了把机器学习应用到真实世界的任务中,我们将采用由5个步骤构成的过程.不管你手头是何种任务,任何机器学习算法都能由下面这些步骤来实施:1)数据收集:数据收集步骤包括收集算法用来生成可行动知识的