计算机中数的表示
2012-10-29 11:26
211 查看
1. 为什么计算机用二进制计数
人类的计数方式通常是“逢十进一”,称为十进制(Decimal),大概因为人有十个手指,所以十进制是最自然的计数方式,很多民族的语言文字中都有十个数字,而阿拉伯数字0~9是目前最广泛采用的。计算机是用数字电路搭成的,数字电路中只有1和0两种状态,或者可以说计算机只有两个手指,所以对计算机来说二进制(Binary)是最自然的计数方式。根据“逢二进一”的原则,十进制的1、2、3、4分别对应二进制的1、10、11、100。二进制的一位数字称为一个位(Bit),三个bit能够表示的最大的二进制数是111,也就是十进制的7。不管用哪种计数方式,数的大小并没有变,十进制的1+1等于2,二进制的1+1等于10,二进制的10和十进制的2大小是相等的。事实上,计算机采用如下的逻辑电路计算两个bit的加法:
图 14.1. 1-bit Full Adder
图的上半部分(出自Wikipedia)的电路称为一位全加器(1-bit Full Adder),图的下半部分是一些逻辑电路符号的图例。我们首先解释这些图例,逻辑电路由门电路(Gate)和导线(Wire)组成,同一条导线上在某一时刻的电压值只能是高和低两种状态之一,分别用0和1表示。如果两条导线短接在一起则它们的电压值相同,在接点处画一个黑点,如果接点处没有画黑点则表示这两条线并没有短接在一起,只是在画图时无法避免交叉。导线的电压值进入门电路的输入端,经过逻辑运算后在门电路的输出端输出运算结果的电压值,任何复杂的加减乘除运算都可以分解成简单的逻辑运算。AND、OR和NOT运算在第 3 节
“布尔代数”中讲过了,这三种逻辑运算分别用与门、或门和反相器(Inverter)实现。另外几种逻辑运算在这里补充一下。异或(XOR,eXclusive OR)运算的真值表如下:
表 14.1. XOR的真值表
A | B | A XOR B |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
表 14.2. NAND的真值表
A | B | A NAND B |
---|---|---|
0 | 0 | 1 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
A | B | A NOR B |
---|---|---|
0 | 0 | 1 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 0 |
表 14.4. 1-bit Full Adder的真值表
A | B | Cin | Cout | S |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 | 1 |
0 | 1 | 0 | 0 | 1 |
0 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 0 | 1 |
1 | 0 | 1 | 1 | 0 |
1 | 1 | 0 | 1 | 0 |
1 | 1 | 1 | 1 | 1 |
图 14.2. 4-bit Ripple Carry Adder
图中的一位全加器用方框表示,上一级全加器的Cout连接到下一级全加器的Cin,让进位像涟漪一样一级一级传开,所以叫做Ripple Carry Adder,这样就可以把两个4
bit二进制数A3A2A1A0和B3B2B1B0加起来了。在这里介绍Ripple Carry Adder只是为了让读者理解计算机是如何通过逻辑运算来做算术运算的,实际上这种加法器效率很低,只能加完了一位再加下一位,更实用、更复杂的加法器可以多个位一起计算,有兴趣的读者可参考[数字逻辑基础]。
转载来自:http://learn.akae.cn/media/ch14s01.html
相关文章推荐
- 减法变加法-计算机中的补码表示
- 计算机中如何表示数字-07IEEE754浮点数标准
- 深入理解计算机系统之旅(三)程序的机器级表示
- 计算机图形学(四)几何变换_2_矩阵表示_2_二维矩阵
- 计算机信息的表示(源码、补码、浮点数、图形、声音)
- 计算机数据表示
- 计算机组成原理:数据与文字的表示方法
- sql server中单引号拼接字符串(书写错误会出现错误"浮点值 XXXX 超出了计算机表示范围(8 个字节)。“XX”附近有语法错误。")
- C/C++浮点数在计算机中的表示
- 计算机中数的表示
- 计算机中的颜色如何表示?
- 计算机中信息的表示与处理
- 计算机中数据信息表示法
- 有符号数在计算机中的表示
- 【转载】计算机程序的思维逻辑 (4) - 整数的二进制表示与位运算
- Java浮点数在计算机中的表示方法(IEEE754-1985)
- 关于浮点数和整数在计算机中的表示
- 负数在计算机中的表示
- 计算机中汉字的二进制编码表示
- 二进制位,字节,字长计算机内表示,及二进制、八进制、十六进制