本章主要教学内容
l 计算机中数制基本概念、数制之间的相互转换
l 无符号数和带符号数的表示方法
l ASCII码和 BCD码的相关概念和应用
l 汉字编码及其应用
第 2章 计算机中的数据表示
第 2章 计算机中的数据表示
本章教学目的及要求
l 熟悉数制的基本概念和计算机中 常用进位计数制
l 掌握 二、八、十、十六进制的表达和相互转换
l 理解 机器数和带符号数的原码、反码、补码表示
l 掌握美国信息交换标准代码( ASCII码)和二 —
十进制编码 —— BCD码的表达及应用。
l 熟悉微型计算机常用的汉字编码及其应用
2.1 计算机中的数制及其转换
第 2章 计算机中的数据表示
2.2 计算机中数值数据的表示
2.3 字符编码
2.4 汉字编码
2.1 计算机中的数制及其转换
通常, 计算机中的数据分为两类,
( 1) 数:用来直接表示量的多少, 有大小之分, 能够进行加
减等运算 。
( 2)码:通常指代码或编码,在计算机中用来描述某种信息。
2.1.1 数制的基本概念
1,数的表示
任何一种数制表示的数都可以写成按位权展开的多项式之和 。
N= dn- 1bn- 1+ dn- 2bn- 2+ dn- 3bn- 3+ …… d- mb- m
式中,n—— 整数的总位数。
m—— 小数的总位数。
d下标 —— 表示该位的数码。
b—— 表示进位制的基数。
b上标 —— 表示该位的位权。
2,计算机中常用的进位计数制
计数制 基数 数 码 进位关系
二进制 2 0,1 逢二进一
八进制 8 0,1,2,3,4,5,6,7 逢八进一
十进制 10 0,1,2,3,4,5,6,7,8,9 逢十进一
十六进制 16 0,1,2,3,4,5,6,7,8,9
A,B,C,D,E,F 逢十六进一
3,计数制的书写规则
( 1) 在数字后面加写相应的英文字母作为标识 。
如:二进制数的 100可写成 100B
十六进制数 100可写成 100H
( 2) 在括号外面加数字下标 。
如,( 1011) 2 表示二进制数的 1011
( 2DF2) 16 表示十六进制数的 2DF2
2.1.2 数制之间的转换
( 1)十进制整数转换为二进制整数
采用基数 2连续去除该十进制整数,直至商等于, 0”为止,
然后逆序排列余数。
( 2)十进制小数转化为二进制小数
连续用基数 2去乘以该十进制小数,直至乘积的小数部分等
于, 0”,然后顺序排列每次乘积的整数部分。
( 3)十进制整数转换为八进制整数或十六进制整数
采用基数 8或基数 16连续去除该十进制整数,直至商等于
,0”为止,然后逆序排列所得到的余数。
( 4)十进制小数转换为八进制小数或十六进制小数
连续用基数 8或基数 16去乘以该十进制小数,直至乘积的小
数部分等于, 0”,然后顺序排列每次乘积的整数部分。
( 5)二、八、十六进制数转换为十进制数
用其各位所对应的系数,按, 位权展开求和, 的方法就可
以得到。其基数分别为 2,8,16。
( 6)二进制数转换为八进制数
从小数点开始分别向左或向右,将每 3位二进制数分成 1组,
不足 3位数的补 0,然后将每组用 1位八进制数表示即可。
( 7)八进制数转换为二进制数
将每位八进制数用 3位二进制数表示即可。
( 8)二进制数转换为十六进制数
从小数点开始分别向左或向右,将每 4位二进制数分成 1组,
不足 4位的补 0,然后将每组用一位十六进制数表示即可。
( 9)十六进制数转换为二进制数
将每位十六进制数用 4位二进制数表示即可。
【 例 2.1】 将十进制整数 ( 105) 10转换为二进制整
数, 采用, 除 2倒取余, 的方法, 过程如下,
2 ︳ 105
2 ︳ 52 余数为 1
2 ︳ 26 余数为 0
2 ︳ 13 余数为 0
2 ︳ 6 余数为 1
2 ︳ 3 余数为 0
2 ︳ 1 余数为 1
0 余数为 1
所以,( 105) 10=( 1101001) 2
【 例 2.2】 将十进制小数( 0.8125) 10转换为二进制小
数,采用“乘 2顺取整”的方法,过程如下,
0.8125× 2= 1.625 取整数位 1
0.625× 2= 1.25 取整数位 1
0.25× 2= 0.5 取整数位 0
0.5× 2= 1.0 取整数位 1
所以, ( 0.8125) 10= ( 0.1101) 2
如果出现乘积的小数部分一直不为, 0”,则可以根据
精度的要求截取一定的位数即可 。
【 例 2.3】 将十进制整数( 2347) 10转换为十六进制整数,
采用, 除 16倒取余, 的方法,过程如下,
16 ︳ 2347
16 ︳ 146 余数为 11(十六进制数为 B)
16 ︳ 9 余数为 2
0 余数为 9
所以, ( 2347) 10= ( 92B) 16
3.补码
正数的补码与其原码相同,负数的补码为其反码在最低位加 1。
【 例 2.15】 ( 1) X=+ 1011011,求其原码、补码。
有,[X]原码 = 01011011 [X]补码 = 01011011
( 2) Y=- 1011011,求其原码、补码。
有,[Y]原码 = 11011011 [Y]反码 = 10100100
[Y]补码 = 10100101
补码表示的整数范围是- 2n-1~ +( 2n-1- 1),n为机器字长。
则,8位二进制补码表示的整数范围是- 128 ~ + 127
16位二进制补码表示的整数范围是- 32768 ~ + 32767
当运算结果超出这个范围时,就不能正确表示数了,此时
称为溢出。
2.2 计算机中数值数据的表示
2.2.1 基本概念
在计算机内部表示二进制数的方法称为数值编码, 把一个数及
其符号在机器中的表示加以数值化, 称为机器数 。 机器数所代表的
数称为数的真值 。
表示一个机器数, 应考虑以下三个因素,
1,机器数的范围
字长为 8位, 无符号整数的最大值是 ( 11111111) B=( 255) D,
此时机器数的范围是 0~255。
字长为 16位,无符号整数的最大值是
( 1111111111111111) B=( FFFF) H=( 65535) D
此时机器数的范围是 0~65535。
2,机器数的符号
在算术运算中, 数据是有正有负的, 将这类数据称为
带符号数 。
为了在计算机中正确地表示带符号数, 通常规定每个
字长的最高位为符号位, 并用 0表示正数, 用 1表示负数 。
3,机器数中小数点的位置
在机器中, 小数点的位置通常有两种约定,
一种规定小数点的位置固定不变, 这时的机器数称为
,定点数, 。
另一种规定小数点的位置可以浮动, 这时的机器数称
为, 浮点数, 。
1,原码
正数的符号位为 0,负数的符号位为 1,其它位按照一
般的方法来表示数的绝对值 。 用这样的表示方法得到的就
是数的原码 。
【 例 2.13】 当机器字长为 8位二进制数时,
X=+ 1011011 [X]原码 = 01011011
Y=+ 1011011 [Y]原码 = 11011011
[+ 1]原码 = 00000001 [- 1]原码 = 10000001
[+ 127]原码 = 01111111 [- 127]原码 = 11111111
原码表示的整数范围是,
- ( 2n-1- 1) ~+ ( 2n-1- 1), 其中 n为机器字长 。
则,8位二进制原码表示的整数范围是- 127~+ 127
16位二进制原码表示的整数范围是- 32767~+ 32767
2,反码
对于一个带符号的数来说, 正数的反码与其原码相同, 负
数的反码为其原码除符号位以外的各位按位取反 。
【 例 2.14】 当机器字长为 8位二进制数时,
X=+ 1011011 [X]原码 = 01011011 [X]反码 = 01011011
Y=- 1011011 [Y]原码 = 11011011 [Y]反码 = 10100100
[+ 1]反码 = 00000001 [- 1]反码 = 11111110
[+ 127]反码 = 01111111 [- 127]反码 = 10000000
负数的反码与负数的原码有很大的区别, 反码通常用作
求补码过程中的中间形式 。
反码表示的整数范围与原码相同 。
3,补码
正数的补码与其原码相同, 负数的补码为其反码在最低位加 1。
【 例 2.15】 ( 1) X=+ 1011011 ( 2) Y=- 1011011
( 1) 根据定义有,[X]原码 = 01011011 [X]补码 = 01011011
( 2) 根据定义有,[Y]原码 = 11011011 [Y]反码 = 10100100
[Y]补码 = 10100101
补码表示的整数范围是- 2n-1~+ ( 2n-1- 1), 其中 n为
机器字长 。
则,8位二进制补码表示的整数范围是- 128~+ 127
16位二进制补码表示的整数范围是- 32768~+ 32767
当运算结果超出这个范围时,就不能正确表示数了,
此时称为溢出。
4.补码与真值之间的转换
正数补码的真值等于补码的本身;负数补码转换为其真值时, 将负数
补码按位求反, 末位加 1,即可得到该负数补码对应的真值的绝对值 。
【 例 2.16】 [X]补码 = 01011001B,[X]补码 = 11011001B,分别求其真值 X。
( 1) [X]补码 代表的数是正数, 其真值,
X=+ 1011001B
=+ ( 1× 26+ 1× 24+ 1× 23+ 1× 20)
=+ ( 64+ 16+ 8+ 1)
=+ ( 89) D
( 2) [X]补码 代表的数是负数, 则真值,
X=- ( [1011001]求反 + 1) B
=- ( 0100110+ 1) B
=- ( 0100111) B
=- ( 1× 25+ 1× 22+ 1× 21+ 1× 20)
=- ( 32+ 4+ 2+ 1)
=- ( 39) D
2.2.3 定点数和浮点数表示
1,定点数
由于定点位置不同, 一般又分为两种情况 。
对于整数, 小数点约定在最低位的右边, 称为定点整数 。 对
于纯小数, 小数点约定在符号位之后, 称为定点小数 。
2,浮点数
如果要处理的数既有整数部分, 又有小数部分, 则采用
定点数会遇到麻烦 。 为此可以采用浮点数, 即小数点的位置
不固定 。
2.3 字符编码
2.3.1 美国信息交换标准代码( ASCII码)
ASCII( American Standard Code for Information Interchange) 码
是美国信息交换标准代码的简称, 用于给西文字符编码;
包括英文字母的大小写, 数字, 专用字符, 控制字符等; 这种
编码由 7位二进制数组合而成, 可以表示 128种字符;
在 ASCII码中, 按其作用可分为,
?34个控制字符;
?10个阿拉伯数字
?52个英文大小写字母;
?32个专用符号
2.3.2 二 — 十进制编码 —— BCD码
BCD( Binary-Coded Decimal)码又称为, 二 — 十进制编
码,,专门解决用二进制数表示十进数的问题。最常用的是
8421编码,其方法是用 4位二进制数表示 1位十进制数,自左至
右每一位对应的位权是 8,4,2,1。
1,压缩 BCD码
每一位数采用 4位二进制数来表示, 即一个字节表示 2位十
进制数 。 例如:二进制数 10001001B,采用压缩 BCD码表示为十
进制数 89D。
2,非压缩 BCD码
每一位数采用 8位二进制数来表示, 即一个字节表示 1位十
进制数 。 而且只用每个字节的低 4位来表示 0~ 9,高 4位为 0。
例如:十进制数 89D,采用非压缩 BCD码表示为二进制数是,
00001000 00001001B
2.4 汉字编码
2.4.1 基本概念
计算机处理汉字信息的前提条件是对每个汉字进行编码,
这些编码统称为汉字代码 。 在汉字信息处理系统中, 对于不
同部位, 存在着多种不同的编码方式 。 比如, 从键盘输入汉
字使用的汉字代码 ( 外码 ) 就与计算机内部对汉字信息进行
存储, 传送, 加工所使用的代码 ( 内码 ) 不同, 但它们都是
为系统各相关部分标识汉字使用的 。
系统工作时, 汉字信息在系统的各部分之间传送, 它到
达某个部分就要用该部分所规定的汉字代码表示汉字 。 因此,
汉字信息在系统内传送的过程就是汉字代码转换的过程 。 这
些代码构成该系统的代码体系, 汉字代码的转换和处理是由
相应的程序来完成的 。
1,汉字输入码
汉字输入码是为用户由计算机外部输入汉字而编制的汉字编码, 又
称为汉字外部码, 简称外码 。 使用较多的有以下 4类,
( 1) 顺序码:如区位码, 电报码等 。
( 2) 音码:如拼音码, 自然码等 。
( 3) 形码:如五笔字型, 大众码等 。
( 4)音形码:如双拼码、五十字元等。
2,汉字机内码
汉字机内码是汉字处理系统内部存储、处理汉字而使用的编码,简
称内码。
3,汉字字形码
汉字字形码是表示汉字字形信息的编码。
4,汉字交换码
汉字交换码是汉字信息处理系统之间或通信系统之间传输信息时,
对每个汉字所规定的统一编码 。
2.4.2 汉字代码的表示方法
2.4.3 几种常用的汉字编码
1,国标码
即, 中华人民共和国国家标准信息交换汉字编码, ( 代
号 GB2312-80) 。 共收录汉字和图形符号 7445个 。 其中:
一级常用汉字 3755个;二级非常用汉字和偏旁部首 3008个;
图形符号 682个 。
2,区位码
将 GB2312-80全部字符集组成一个 94× 94的方阵, 每一
行称为一个, 区,, 编号从 01~ 94;每一列称为一个
,位,, 编号也是从 01 ~ 94。 这样, 每一个字符便具有
一个区码和一个位码, 将区码置前, 位码置后, 组合在一
起就成为区位码 。
3,BIG-5码
BIG-5码是我国台湾地区编制和使用的一套中文
内码。它是为了解决各生产厂家中文内码不统一的
问题而设计出的一套编码,并采用 5大套装软件的
“五大”命名为,BIG-5”码,俗称“大五码”。
4,GB13000码
国际标准化组织( ISO)于 1993年公布了, 通用
多八位编码字符集, 的国际标准( ISO/IEC 10646)。
我国发布了与其一致的国家标准,即 GB13000码。
本章小结
本章着重介绍了计算机中数据的表示方法,
重点处理了二、八、十、十六进制数的相关概
念及各类数制之间相互转换的方法、无符号数
和带符号数的机器内部表示、字符编码和汉字
编码等。通过本章的学习,要掌握计算机内部
的信息处理方法和特点,熟悉各类数制之间的
相互转换,理解无符号数和带符号数的表示方
法,掌握 BCD码和字符的 ASCII码以及汉字编码
及其应用。
THANK YOU VERY MUCH
本章到此结束,
谢谢您的光临!