计算机组成原理学习笔记——BCD码和字符码

一、BCD 码

  • BCD 码是一种压缩型码,用于表示十进制数。

1、BCD 码的定义

  • BCD(Binary-Code Decimal),二进制编码的十进制数。通常采用 4 位二进制数表示一位十进制数中的 0~9 这 10 个数码,优点是二进制和十进制之间的转换可以快速进行,缺点就是有 6 种状态为冗余状态。
  • 常用的 BCD 码有 8421 码,余 3 码和 2421 码。

2、8421 码

2.1、何为 8421 码

  • 8421 码又叫 NBCD(Natural Binary Code Decimal)码。它是一种有权码,原理如下:
  • 设一个 8421 码的各位数值为 b3,b2,b1,b0;则权值从高到低依次为8、4、2、1,它表示的十进制数为:D=8b3+4b2+2b1+b0。

2.2、注意事项

  • 8421 码在计算的时候有如下注意点:
    在这里插入图片描述
  • 十进制和 8421 码对照如下:
    十进制数 8421码
    0 0000
    1 0001
    2 0010
    3 0011
    4 0100
    5 0101
    6 0110
    7 0111
    8 1000
    9 1001

3、余 3 码

  • 是一种无权码,是在 8421 码的基础上加 0011 形成的,因此每个数都多余“3”,故称。
    在这里插入图片描述

4、2421 码

  • 也是一种有权码,权为2,4,2,1;特点是大于等于 5 的 4 位二进制数中的最高位为 1,小于 5 的最高位为 0,因此 5—> 1011 而非 0101.
  • 这三种 BCD 码中,8421 码最常用,我觉得应该是由于其表示方法比较简单,并且容易转换成十进制数。

二、字符码

  • 字符码主要针对汉字编码和非汉字编码两部分,非汉字编码就是熟知的 ASCII 码,汉字编码则是 GB18030

1、ASCII 码

  • ASCII 码是一串 7 位长的二进制编码,一共可以表示 128 种字符,包括 32 (0~31)个通用控制字符,十个 10 进制数,52 个英文大写字母和小写字母,34 个专用符号($、%、+、=等),除了 32 个控制字符无法打印外,其余 96 个字符都可以打印。
  • ASCII 码由 b7b6b5b4b3b2b1 这 7 个二进制位组成,为了简便书写,可用两位十六进制表示,如“A”表示成 41H,“7”可用 37H 表示。
  • 为了挺高信息传输的可靠性,通常增加一位 b8 做校验码,这样一个字符就用 8 位二进制代码表示。
  • ASCII 码表如下:
    在这里插入图片描述
  • 前 32 个控制字符的具体意义如下:
    在这里插入图片描述
  • 这里可以看到 ASCII 码也可以表示十进制数。
  • ASCII 码中对十进制数的表示是一种非压缩型的表示,就是数的每一个字符占一个字节,而根据符号位的不同位置可以分为前分隔式和后嵌入式两种。

1.1、前分隔式 ASCII 码表示十进制数

  • 前分隔式的符号位占一个字节,放在数字位之前,用 2B("+") 和 2D("-") 表示正负号,如下:
    +427 表示为 2B 34 32 37
    -427 表示为 2D 34 32 37

1.2、后嵌入式 ASCII 码表示十进制数

  • 后嵌入式的符号位不占一个字节,而是将符号嵌入到最低一位的数字中,规则是:如果是负数,就将最低位的十进制数的 ASCII 码加上 40H;如果是正数则不变。例如:
    +427 表示为 34 32 37
    -427 表示为 34 32 77
  • 用压缩型表示的十进制数进行算术运算极其不方便,因为每个字节占 8 位,只有其低 4 位的值才表示数值,高 4 位在算术运算中毫无意义,这种表示主要用于非数值计算的有关领域。在数值计算时,更多的用压缩型的 BCD 码。

2、汉字编码

  • 上面两种编码都不涉及汉字字符,为了汉字字符在计算机中的表示,1981 年国家标准 GB2312-1980 中,每个编码用两个字节表示,收录了一级汉字 3755 个、二级汉字 3008 个、各种符号 682 个,共 7445 个。
  • 目前最新的汉字编码是 2000 年的 GB18030,收录了 27484 个汉字;编码标准采用 1B、2B 和 4B。
  • 汉字编码包括汉字的输入编码、汉字内码、汉字字形码三种,是计算机中用于输入、内部处理和输出三种用途的编码

2.1、区位码

  • 区位码是国家标准局于 1981 年颁布的标准,它用两字节表示一个汉字,每个字节用 7 位码,并将汉字和图形符号排列在一个 94 行 94 列的二维代码表中。
  • 区位码是 4 位十进制数,前 2 位为区码,后两位是位码,故称区位码。

2.2、国标码

  • 国标码是将十进制的区位码转换为十六进制数后,再在每字字节上加上 20H。
  • 国标码两字节的最高位都是0,ASCII 码最高位也是 0;为了方便计算机区分中文字符和英文字符,将国标码两字节的最高位都改为“1”,这就是汉字内码。

2.3、国标码和区位码的联系

  • 区位码和国标码都是输入码,和汉字内码的关系如下:
    在这里插入图片描述

上一篇
下一篇

发布了184 篇原创文章 · 获赞 24 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_42896653/article/details/104484983
今日推荐