根据给定文件的信息,我们可以总结出以下几个主要的知识点:
### 1. 计算机中数的表示方式
#### 1.1 数在计算机内的表示
- **无符号数**:仅表示数值大小,没有正负之分。例如,一个8位的无符号数可以表示的范围是从`00000000B`到`11111111B`,即0到255。
- **有符号数**:包含正负号。在计算机中通常使用最高位作为符号位(符号位),正数为0,负数为1。
#### 1.2 有符号数的不同表示方法
- **原码**:符号位代表正负,其余位表示数值的绝对值。例如,8位二进制的表示范围是-127到+127。
- 正数的原码与其二进制形式相同。
- 负数的原码:符号位为1,其余位表示该数的绝对值。
- **反码**:正数的反码与原码相同;负数的反码是在其原码的基础上,除了符号位外所有位都进行取反操作。
- **补码**:正数的补码与原码相同;负数的补码是在其原码的基础上,除了符号位外所有位都进行取反操作后,再将最低位加1。
### 2. 补码运算
- **补码加法**:两个补码数相加时,可以直接按位相加,溢出部分忽略。
- **补码减法**:相当于加上另一个数的补码,即`[X-Y]补 = [X]补 + [-Y]补`。
### 实例解析
#### 例1-1:求+67、-25的原码(机器字长8位)
- **+67的原码**:`01000011B`
- **-25的原码**:`10011001B`
#### 例1-2:求+67、-25的反码(机器字长8位)
- **+67的反码**:与原码相同,即`01000011B`
- **-25的反码**:符号位不变,其余位取反,即`11100110B`
#### 例1-3:求+67、-25的补码(机器字长8位)
- **+67的补码**:与原码相同,即`01000011B`
- **-25的补码**:在反码的基础上,最低位加1,即`11100111B`
#### 例1-4:已知+25的补码为00011001B,用求补运算求-25的补码
- 首先求+25的反码,即`11100110B`。
- 最低位加1,得到`11100111B`,即为-25的补码。
#### 例1-5:假设计算机字长为8位,完成下列补码运算
- **25+32**:结果为57,补码为`00111001B`。
- **25+(-32)**:结果为-7,补码为`11111001B`。
- **25-3**:等同于`25+(-3)`,结果为22,补码为`00010110B`。
以上内容详细介绍了单片机中数字的表示方法及其相关的运算规则,并通过具体的例子进行了详细的解析。这对于理解单片机的基本工作原理和编程具有重要的意义。接下来的内容将深入探讨单片机的基本原理、C语言程序设计以及MCS-51单片机的具体应用等方面的知识点。
- 1
- 2
前往页