计算机内部是一个二进制的数字世界,一切信息的存取,处理,传送,都是以二进制编码进行的。二进制只有0,1这两个数字符号
文档:
** 对R进制数有两个重要的概念,技术和位权 基数:R进制的基数为R, 如 二进制的基数为二 位权:基数的数位次方
一. 二进制
二进制是指以0,1
的计数方式。其特点是,逢二进一,借一为二; 整数部分的位权为2``` ,小数部分的位权为
2```, n,m
分别为整数和小数的位数。通常,一个二进制数N可以定义成如下形式
N = an-12 + a2 + …… + a2+a2 +a2 + …… +a2 其中,a取值为0或1,2或2,为权, i的取值为 -m~-n
为区别不同进制的数,常用下标加以说明,如 (1011) 为二进制数, (1011),为十进制数, (1011)为十六进制数。
- 二进制还可以用Ob表示, 如:Ob1011
- 十六进制可以用Ox表示, 如:Ox1011
二进制的运算规则:逢二进一,借一为二。二进制的加法乘法的运算规则为:
- 加法运算: 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10
- 乘法运算: 0 × 0 = 0 0 × 1 = 0 1 × 0 = 0 1 × 1 = 1
- 减法运算: 0 – 1 = 1
栗子: 计算 (1011)2 + (11)2 和 (1010)2 – (11)2的值
1 0 1 1
+ 1 1
---------------
1 1 1 0
1 0 1 0
- 1 1
-------------
1 1 1
因此二进制的计算结果是
1011 + 11 = 1110
1010 - 11 = 111
二. 二进制与十进制的相互转换
由于计算机智能识别二进制数,所以在计算机中经常要进行二进制与十进制的转换。
2.1 二进制转换为十进制
转换规则:按权展开求和,即将每位的系数与对应的位权相乘,然后把每位乘积相加,得到的和就是十进制数。
栗子: (1011.101) 转换为十进制
(1011.101) = 1 × 2 + 0 × 2 + 1 × 2 + 1 × 2 + 1 × 2 + 0 × 2 + 1 × 2 = 8 + 0 + 2 + 1 + 0.5 + 0.125 = (11.625)
2.2 十进制转二进制
十进制转二进制需要分为整数个小数两步来进行
- 整数部分的转换规则: 除2,反序,取余
- 小数部分的转换规则: 除2,正序,取整
在转换过程中,先将十进制除以2,取出余数, 然后再将商不断除以2,取出每次的余数,直到商为0;最后按 “从后到前的顺序” 读余数即时所要得到的二进制数
栗子: (53)转换为二进制
53 % 2 = 26 余 1
26 % 2 = 13 余 0
13 % 2 = 6 余 1
6 % 2 = 3 余 0
3 % 2 = 1 余 1
1 % 2 = 1 余 1
结果 (110101)
十进制小数转换为二进制,在转换过程中,先将十进制数乘以2,取出整数,然后再将积的小数部分不断乘以2,取出每次的整数,知道积的小数部分为0;然后按”从前到后的顺序” 读出的整数即是要得到的二进制数
栗子: (0.375)转换为二进制数
0.375 取整
× 2
-----------
0.750 0
× 2
-----------
1.500 1
× 2
-----------
1.000 1
结果 (0.011)
由于十进制小数不断乘以2的积的小数部分,不一定为0,因此在实际转换时应根据规定的精度确定二进制的小数位数
三. 十六进制
十六进制是指用16个数码: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
( A — F 表示 0—15 )计数的方式。计算机中每位十六进制数通常用 4位二进制数表示 常用进制对照表
十进制(D) | 二进制(B) | 八进制(O) | 十六进制(H) |
---|---|---|---|
0 | 0000 | 0 | 0 |
1 | 0001 | 1 | 1 |
2 | 0010 | 2 | 2 |
3 | 0011 | 3 | 3 |
4 | 0100 | 4 | 4 |
5 | 0101 | 5 | 5 |
6 | 0110 | 6 | 6 |
7 | 0111 | 7 | 7 |
8 | 1000 | 10 | 8 |
9 | 1001 | 11 | 9 |
10 | 1010 | 12 | A |
11 | 1011 | 13 | B |
12 | 1100 | 14 | C |
13 | 1101 | 15 | D |
14 | 1110 | 16 | E |
15 | 1111 | 17 | F |
16 | 0001 0000 | 1 | |
17 | 0001 0001 | 11 | |
18 | 0001 0010 | 12 | |
19 | 0001 0011 | 13 | |
20 | 0001 0100 | 14 | |
21 | 0001 0101 | 15 | |
22 | 0001 0110 | 16 | |
23 | 0001 0111 | 17 | |
24 | 0001 1000 | 18 | |
25 | 0001 1001 | 19 | |
26 | 0001 1010 | 1A | |
27 | 0001 1011 | 1B | |
28 | 0001 1100 | 1C | |
29 | 0001 1101 | 1D | |
30 | 0001 1110 | 1E | |
31 | 0001 1111 | 1F |
十六进制与二进制之间的转换十分方便,只要把每位十六进制数转换为相应的二进制数即可。反过来,只要把二进制数从小数点起,向左,向右每四位分组,不足4位用 0 补齐,每组对应的是十六进制数即是所转换的十六进制数
栗子: (10011010110.101)转换为十六进制
0100 1101 0110. 1010
| | | |
4 D 6. A
结果: (4D6.A) 栗子: (82B9)转换为二进制
8 2 B 9
| | | |
1000 0010 1010 1001
结果: (1000 0010 1010 1001)
四. 信息基础知识
在计算机中,任何信息的存储和处理都是以数据形式实现的。计算机内部的数据分为
- 数值型数据
- 非数值型数据
数值型数据用来表示数量的多少, 非数值型数据表示文字,声音,图形,图像等信息
1、 位(bit): 位是计算机系统中数据的最小单位。计算中所有的数据都是以二进制来表示的,一个二进制代码称为一位,****记为Bit位是计算机中最小的信息单元
2、 字节(byte): 八位二进制组成一个字节。字节是衡量信息存储容量的基本单位。在对二进制数进行存储时,以八位二进制代码为一个单元存放在一起。称为一个字节。记Byte .
* 1B(字节) = 8Bit
* 1KB(千字节) = 2B = 1024B
* 1MB(兆字节) = 2KB = 2B = 1048576B
* 1GB(吉字节) = 2MB = 1024MB = 2B
* 1TB(太字节) = 2GB = 1024GB = 2B
1KB读作1千字节,但这里的”千” 不是指十进制中 “1000” , 他与十进制中的 “1024” 等价
1、 存储单元:若干个字节构成一个存储单元。每个存储单元都有一个唯一的编号,称为”地址”,通过地址对存储单元进行访问。一个存储单元(或一个字)所包含的二进制位数称为字长**。**
2、 字(word): 字是一个存储单元存储的内容。一条指令,一个数据信息 都可以称为一个字。
4.1 数值数据信息的表示
在实际应用中,数字不仅有正负,还有小数,数的正负用”+” “-“, 小数点用”.” 由于计算机不能识别正负号和小数点,因此,必须把正负号和小数点数字化**。** 通常,将计算机中数的最前一位用作符号,符号位0表示正数,符号位1 表示负数。连同符号位一起表示的数称为机器数 小数点的位置一般有两种约定,
1、 小数点的位置固定不变,这时机器数称为”定点数”,
2、 小数点的位置可以变动,这时机器数称为”浮点数”
机器数可以表示的数值范围由计算机的字长决定 当字长为8位是,机器数的表示范围如下:
- 无符号整数: 0~255
- 带符号整数: (01111111) = (127)(11111111) = (-127) 即(-127~127)
当字长为16位是,机器数的表示范围如下:
- 无符号整数: (1111 1111 1111 1111 ) = (65535)0~65535
- 带符号整数: (0111 1111 1111 1111 ) = (32767)(1111 1111 1111 1111 ) = (-23767) 即(-23767~32767)
// JavaScript的表示
当字长为32,64位时,机器数的表示范围依次类推。
4.2 非数值数据信息的表示
1. ASCII码
全称”美国交换信息标准码”。西方最常用的字符编码。ASCII码每个字符用七位二进制表示,可以表示128种字符
2. 汉字编码
- GB码– GB2312-80, 中国国标码,收录大多数汉字
- GBK码 — 国标码扩展,包含GB码
- BIG5码 –台湾,香港使用的繁体汉字编码标准
参考文档
1、 《大学计算机基础》 –东软电子出版社(2012年)
2、 《计算机组成原理 (第二版)》 –东软电子出版社(2014年)