数制与进制转换简介及实例分析
目录
数制概述
数制是指数字系统中用来表示数值的一种计数方法。不同的数制基于不同的基数进行计数,其中最常见的几种进制包括:
-
十进制 (Base 10)
- 定义:这是我们日常生活中最常用的一种进制。它使用0到9这10个数字来表示所有的数值。
- 特点:当计数到达9时,会向前一位进位,即10表示“十”。
- 应用:广泛应用于日常生活中的计数和计算。
-
二进制 (Base 2)
- 定义:计算机内部主要使用的进制。只使用0和1两个数字来表示所有的数值。
- 特点:当计数到达1时,会向前一位进位,即10表示“二”。
- 应用:是计算机内部处理数据的基础,也是所有数字电路设计的基础。
-
八进制 (Base 8)
- 定义:在早期的计算机科学中较为常见。使用0到7这8个数字来表示所有的数值。
- 特点:当计数到达7时,会向前一位进位,即10表示“八”。
- 应用:有时用于简化二进制数的书写。
-
十六进制 (Base 16)
- 定义:常用于表示计算机中的颜色代码、内存地址等。使用0到9以及A到F(分别代表10到15)这16个符号来表示所有的数值。
- 特点:当计数到达F时,会向前一位进位,即10表示“十六”。
- 应用:在计算机科学和网络通信中广泛应用。
进制间的加法运算示例
以下是不同进制中进行加法运算的具体步骤。需要注意的是,在进行加法时,如果某一列的和超过了当前进制的最大值,则需要向前一位进位,并在当前位置写下小于进制最大值的数字。
-
十进制:计算
23 + 17
- 对齐各位数字:
23 17
- 从右往左逐位相加:
- 个位:
3 + 7 = 10
,写下0,进位1。 - 十位:
2 + 1 + 1 = 4
(之前进位的1加上原来的2和现在的1)。
- 个位:
- 结果:
40
- 对齐各位数字:
-
二进制:计算
1011 + 1001
- 对齐各位数字:
1011 1001
- 从右往左逐位相加:
- 个位:
1 + 1 = 10
(二进制),写下0,进位1。 - 十位:
1 + 0 + 1 = 10
(二进制),写下0,再次进位1。 - 百位:
0 + 1 + 1 = 10
(二进制),写下0,再次进位1。 - 千位:
1 + 1 = 10
(二进制),写下1,进位1。
- 个位:
- 结果:
10100
(二进制)
- 对齐各位数字:
-
八进制:计算
27 + 34
- 对齐各位数字:
27 34
- 从右往左逐位相加:
- 个位:
7 + 4 = 13
(八进制),写下3,进位1。 - 十位:
2 + 3 + 1 = 6
(八进制)。
- 个位:
- 结果:
63
(八进制)
- 对齐各位数字:
-
十六进制:计算
1A + 17
- 对齐各位数字:
1A 17
- 从右往左逐位相加:
- 个位:
A (10) + 7 = 17
(十六进制),写下7,进位1。 - 十位:
1 + 1 + 1 = 3
(十六进制)。
- 个位:
- 结果:
37
(十六进制)
- 对齐各位数字:
进制转换
进制转换是指将一个数字从一种进制转换到另一种进制的过程。下面是几种常见的进制转换方法及其示例:
从十进制转换到其他进制
-
示例:将十进制数
25
转换为二进制- 步骤:
25 ÷ 2 = 12 ... 1
12 ÷ 2 = 6 ... 0
6 ÷ 2 = 3 ... 0
3 ÷ 2 = 1 ... 1
1 ÷ 2 = 0 ... 1
- 结果:从最后一个除法开始,将余数依次排列:
11001
(二进制)
- 步骤:
-
示例:将十进制数
123
转换为十六进制- 步骤:
123 ÷ 16 = 7 ... 11 (B)
7 ÷ 16 = 0 ... 7
- 结果:从最后一个除法开始,将余数依次排列:
7B
(十六进制)
- 步骤:
从其他进制转换到十进制
-
示例:将二进制数
1011
转换成十进制- 步骤:
1 * 2^3 + 0 * 2^2 + 1 * 2^1 + 1 * 2^0
8 + 0 + 2 + 1
11
- 结果:
11
(十进制)
- 步骤:
-
示例:将十六进制数
3F
转换成十进制- 步骤:
3 * 16^1 + 15 * 16^0
48 + 15
63
- 结果:
63
(十进制)
- 步骤:
从一种非十进制转换到另一种非十进制
- 示例:将十六进制数
3F
转换成二进制- 步骤:
- 转换为十进制:
3 * 16^1 + 15 * 16^0
48 + 15
63
- 转换为二进制:
63 ÷ 2 = 31 ... 1
31 ÷ 2 = 15 ... 1
15 ÷ 2 = 7 ... 1
7 ÷ 2 = 3 ... 1
3 ÷ 2 = 1 ... 1
1 ÷ 2 = 0 ... 1
- 转换为十进制:
- 结果:从最后一个除法开始,将余数依次排列:
111111
(二进制)
- 步骤:
位、字节、字的概念
-
位(bit):表示二进制位,每个0或1就是一个位。位是数据存储的最小单位。计算机中的CPU位数指的是CPU一次能处理的最大位数。例如64位计算机的CPU一个机器周期内可以处理64位二进制数据的计算。
-
字节(byte):由八个二进制位构成,是计算机中数据处理的基本单位。计算机中以字节为单位存储和解释信息,规定一个字节由八个二进制位构成,即1个字节8位 (
1byte = 8bits
)。八位二进制数最小为00000000
,最大为11111111
;通常1个字节可以存入一个ASCII码,2个字节可以存放一个汉字国标码。 -
字(word):计算机进行数据处理时,一次存取、加工和传送的数据长度称为字(word)。一个字通常由一个或多个(一般是字节的整数倍)字节构成。例如286微机的字由2个字节组成,它的字长为4位(16位机);486微机的字由4个字节组成,它的字长为32位机。计算机的字长决定了其CPU一次操作处理实际位数的多少,由此可见计算机的字长越大,其性能越优越。
逻辑运算
逻辑运算是基于二进制的布尔代数,通常用于计算机程序设计和电路设计中。逻辑运算包括以下几种基本操作:
-
与(AND)运算
- 如果两个输入都是1,则输出为1;否则输出为0。
- 示例:
1 AND 1 = 1
,1 AND 0 = 0
-
或(OR)运算
- 如果至少有一个输入是1,则输出为1;否则输出为0。
- 示例:
1 OR 0 = 1
,0 OR 0 = 0
-
非(NOT)运算
- 输入为1时输出为0,输入为0时输出为1。
- 示例:
NOT 1 = 0
,NOT 0 = 1
-
异或(XOR)运算
- 如果两个输入不同,则输出为1;如果相同,则输出为0。
- 示例:
1 XOR 0 = 1
,1 XOR 1 = 0
-
与非(NAND)运算
- 是与运算的否定,即两个输入都是1时输出为0,否则为1。
- 示例:
1 NAND 1 = 0
,1 NAND 0 = 1
-
或非(NOR)运算
- 是或运算的否定,即至少有一个输入是1时输出为0,否则为1。
- 示例:
1 NOR 0 = 0
,0 NOR 0 = 1