单片机:信息在计算机内的表示

信息在计算机内的表示

信息在计算机内的表示

  • 信息在计算机内的表示
    • [1. 信息表示的基本概念](#1. 信息表示的基本概念)
    • [2. 数在计算机内的表示](#2. 数在计算机内的表示)
      • [2.1 无符号数的表示](#2.1 无符号数的表示)
      • [2.2 有符号数的表示(重点)](#2.2 有符号数的表示(重点))
        • [2.2.1 原码 (Sign-Magnitude)](#2.2.1 原码 (Sign-Magnitude))
        • [2.2.2 反码 (Ones' Complement)](#2.2.2 反码 (Ones' Complement))
        • [2.2.3 补码 (Two's Complement)](#2.2.3 补码 (Two's Complement))
      • [2.3 三种编码对比表(以8位为例)](#2.3 三种编码对比表(以8位为例))
      • [2.4 求补运算](#2.4 求补运算)
      • [2.5 补码的加减运算](#2.5 补码的加减运算)
    • [3. 西文字符的ASCII码表示](#3. 西文字符的ASCII码表示)
      • [3.1 ASCII码简介](#3.1 ASCII码简介)
      • [3.2 ASCII码表重要部分](#3.2 ASCII码表重要部分)

学习目标

  • 了解信息在计算机中的表示方法
  • 掌握有符号数的原码、反码和补码表示
  • 掌握西文字符的ASCII码表示

1. 信息表示的基本概念

计算机内部所有信息(数字、文字、图像、声音等)最终都以二进制形式表示。二进制系统只使用两个数字:0和1,对应电路中的低电平和高电平状态。

为什么使用二进制?

  1. 可靠性高:只有两种状态,抗干扰能力强
  2. 实现简单:用开关电路即可表示
  3. 运算规则简单:逻辑运算易于实现
  4. 与逻辑代数对应:便于进行逻辑设计

2. 数在计算机内的表示

2.1 无符号数的表示

无符号数就是非负数,直接使用二进制表示。

示例:8位二进制表示范围

  • 最小值:0000 0000₂ = 0₁₀
  • 最大值: 1111 1111₂ = 255₁₀

2.2 有符号数的表示(重点)

有符号数需要表示正负,计算机中常用三种表示方法:

2.2.1 原码 (Sign-Magnitude)
  • 规则:最高位为符号位,0表示正数,1表示负数,其余位表示数值的绝对值
  • 示例 (8位):
    • +5 的原码:0000 0101
    • -5 的原码: 1000 0101
  • 特点
    • 原码表示范围为-(2n-1-1)~+(2n-1-1)。
    • -0和+0的编码不一样。0有两种表示:+0 (0000 0000) 和 -0 (1000 0000)

【例】求+76、-45的源码(机器字长为8位)。

因为

|+76| =76 = 100 1100B

| -45| =45 = 10 1101B

所以

+76 = 0100 1100B

-45 = 1010 1101B

2.2.2 反码 (Ones' Complement)
  • 规则
    • 正数:与原码相同
    • 负数:符号位为1,数值部分按位取反
  • 示例 (8位):
    • +5 的反码:0000 0101
    • -5 的反码:1111 1010
  • 特点
    • 表示范围为-(2n-1-1)~+(2n-1-1)。
    • 0有两种表示:+0 (0000 0000) 和 -0 (1111 1111)
    • 减法可以转换为加法,但需要处理循环进位

【例】求+76、-45的返码(机器字长为8位)。

因为

+76 = 0100 1100B

-45 = 1101 0010B

所以

+76 = 0100 1100B

-45 = 1010 1101B

2.2.3 补码 (Two's Complement)
  • 规则
    • 正数:与原码相同
    • 负数:反码 + 1
  • 示例 (8位):
    • +5 的补码:0000 0101
    • -5 的补码:
      1. 先求绝对值5的原码:0000 0101
      2. 按位取反:1111 1010(反码)
      3. 加1:1111 1011(补码)
  • 特点
    • 0只有一种表示:0000 0000
    • 减法可以完全转换为加法,无需特殊处理
    • 表示范围不对称:-128 ~ +127(8位),表示范围为-(2n-1)~+(2n-1-1)。
    • 是现代计算机中整数表示的标准方法

【例】求+76、-45的补码(机器字长为8位)。

因为

+76 = 0100 1100B

-45 = 1101 0010B

所以

+76 = 0100 1100B

-45 = 1010 1101B+1 =1101 0011B

2.3 三种编码对比表(以8位为例)

十进制数 原码 反码 补码
+127 0111 1111 0111 1111 0111 1111
+1 0000 0001 0000 0001 0000 0001
+0 0000 0000 0000 0000 0000 0000
-0 1000 0000 1111 1111
-1 1000 0001 1111 1110 1111 1111
-127 1111 1111 1000 0000 1000 0001
-128 无法表示 无法表示 1000 0000

2.4 求补运算

一个二进制数,符号位和数值位一起取反,末位加1。

特点: X求补-X

【例】已知-45的补码为 0010 1101B,用求补运算求-45的补码。

因为

45求补-45

所以

-45 =1101 0010B + 1 = 1101 0011B

2.5 补码的加减运算

3. 西文字符的ASCII码表示

3.1 ASCII码简介

ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是最常用的字符编码标准。

基本特性

  • 使用7位二进制表示(实际存储用8位,最高位为0)
  • 共128个字符(0~127)
  • 包括:控制字符(0~31)、数字、大写字母、小写字母、标点符号

3.2 ASCII码表重要部分

十进制 十六进制 字符 说明
0 0x00 NUL 空字符
48 0x30 '0' 数字0
49 0x31 '1' 数字1
... ... ... ...
65 0x41 'A' 大写字母A
66 0x42 'B' 大写字母B
... ... ... ...
97 0x61 'a' 小写字母a
98 0x62 'b' 小写字母b
... ... ... ...

总结

掌握信息在计算机中的表示方法是理解计算机工作原理的基础,也是后续学习数据结构、操作系统、编译原理等课程的重要前提。