《计算机组成原理》----2.2 数字

简介: 用来计数的数字(即1,2,3,4,…)被称作自然数,因为它们并不依赖于数学而存在——无论地球上是否有人去数,猎户座的腰带上总是3颗星。我们用十进制或十进制系统计数,因为它有0~9共10个符号(对应于人手指的个数)。

本节书摘来自华章出版社《计算机组成原理》一书中的第2章,第2.2节, 作 者 Computer Organization and Architecture: Themes and Variations[英]艾伦·克莱门茨(Alan Clements) 著,沈 立 王苏峰 肖晓强 译, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.2 数字

用来计数的数字(即1,2,3,4,…)被称作自然数,因为它们并不依赖于数学而存在——无论地球上是否有人去数,猎户座的腰带上总是3颗星。我们用十进制或十进制系统计数,因为它有0~9共10个符号(对应于人手指的个数)。

并非所有数字都是自然数。人们发明了负数来处理如银行存款余额等情况。还创造出实数描述123.456和13/14那样的数。实数可分为有理数和无理数。有理数可被表示为分数(如7/12),而无理数不能被表示为一个整数除以另一个的形式,例如π或。

现代数字系统中,有一个符号表示0,这是在1400年前后由阿拉伯世界传入欧洲的。该系统使用位置记数法表示十进制数,每个数位的值或权取决于它在数字中的位置,例如数1261中6的值就是数126中6的10倍。十进制数1261等于1×1000+2×100+6×10+1×1。在位置记数法中,当一个数只剩一位时所乘的值称作基数。

2.2.1 位置记数法

按照位置记数法,一个n位的整数N将按照下面的形式书写:
an-1, an-2,…, ai,…,a1a0
这里ai(i=0,1,...,n–1)是与b的幂相乘的系数(此处b为基数)。例如,当基数为10时,我们可以将N=278写作a2a1a0,这里a2=2,a1=7,a0=8。
用小数点(例如,十进制小数点基于十进制运算,而二进制小数点基于二进制运算)将整数部分和小数部分分开,可以对位置记数法进行扩展,使其能够表示实数。十进制运算中的实数按照形如1234.567的方式书写。一个小数点前有n位,小数点后有m位的实数被表示为an-1an-2…ai…a1a0.a-1a-2…a-m。

一个用基数为b的位置记数法表示的数的值被定义为:
N = an-1bn-1+…+ a1b1+ a0b0+ a-1b-1+ a-2b-2+…+ a-mb-m
=QQ_20170526170515

采用位置记数法,一个数的数值等于它各位值的总和,而每一位的值则是该位的数值乘以它在数中的位置所对应的权。例如,十进制数1982等于1×103+9×102+8×101+2×100。对于任意基数b,b0的值总是1。

当基数为2时,二进制数10110.11的值为1×24+0×23+1×22+1×21+0×20+1×2-1+
1×2-2,或用十进制表示为16+4+2+0.5+0.25=22.75。
为了区分十进制数、二进制数和十六进制数,我们分别用下标10、2和16表示基数(例如123410、10100112和12A316)。不过,若一个数的基数是显而易见的,则可以将下标省略掉。

计算机科学家对4种数制感兴趣:十进制、二进制、八进制和十六进制(十六进制通常被缩写为hex)。八进制数现在使用不多,因此本书不再讨论。表2-2列出了每种数制所使用的数字。由于十六进制数有16个数字,字母A~F分别表示数值10~15。例如,12CF16包括数字1、2、12和15。人们用十六进制数表示位数很多的二进制数。例如,8位二进制数10001001等于十六进制数89,后者更容易记。


3ea0eba6604df036a899ca1e806d9e9bf363336c


c38eaba0849a96813a31460d402fb48944d6abb5
相关文章
|
4月前
|
存储 NoSQL Linux
Redis集群部署指南
本教程基于CentOS7详解Redis集群部署,涵盖单机安装、主从复制、哨兵高可用及分片集群搭建。通过多实例模拟真实环境,深入讲解配置、启动、主从切换与数据读写测试,助你掌握Redis分布式架构核心技能。
704 0
|
6月前
|
监控 Linux 调度
【赵渝强老师】Docker容器的资源管理机制
本文介绍了Linux CGroup技术及其在Docker资源管理中的应用。通过实例演示了如何利用CGroup限制应用程序的CPU、内存和I/O带宽使用,实现系统资源的精细化控制,帮助理解Docker底层资源限制机制。
606 6
|
编解码 算法 网络协议
流量控制--5.Classless Queuing Disciplines (qdiscs)
流量控制--5.Classless Queuing Disciplines (qdiscs)
395 4
|
算法 Linux 调度
理解CPU负载与使用率
**CPU使用率与负载简介** - **CPU使用率**:指CPU被占用的时间占总时间的比例,单核为直接比例,多核为各核心平均值。高使用率(如80%-90%)表示CPU繁忙,可能导致系统变慢;低使用率(如10%-20%)则表示系统运行流畅。 - **CPU负载**:指等待CPU处理的任务数量,通常显示1分钟、5分钟和15分钟的平均值。高负载意味着任务排队多,可能造成系统卡顿;正常负载下系统运行顺畅。负载反映任务量,使用率反映实际占用时间,两者可不同步。
2070 5
|
设计模式 C# C++
建造者模式详解
建造者模式是一种创建型设计模式,通过将对象的构造与表示分离,使得同样的构建过程可以创建不同的对象。它适用于复杂对象的构建,如汽车制造、软件配置生成等场景。该模式的核心角色包括抽象建造者、具体建造者、产品和指挥者。优点包括解耦构造和表示、代码复用性强、易于扩展;缺点是增加代码复杂度,对产品组成部分有依赖。
|
网络协议 算法 Linux
TCP是如何进行拥塞控制的?
TCP是如何进行拥塞控制的?
1162 1
|
存储 Kubernetes API
在K8S中,calico有哪些组件?都是做什么的?
在K8S中,calico有哪些组件?都是做什么的?
|
移动开发 网络协议 Linux
Linux系统中查看路由表的命令(ip route)
Linux系统中查看路由表的命令(ip route)
2093 0
|
监控 NoSQL Unix
redis----主二从三哨兵环境配置
redis----主二从三哨兵环境配置
583 0
|
前端开发 程序员 数据处理
硅谷的主干道:深度解析计算机总线的秘密
硅谷的主干道:深度解析计算机总线的秘密
1056 0

热门文章

最新文章