「计算机科学基础」第三章 数据的表示与存储()

数据的表示与存储

数据在计算机中的表示

数制

也称记数制,是用一组固定的符号统一的规则来表示数值的方法

数制

有两个基本要素:和

基数
位权

基数

在某种进位记数制中,每个数位上能够使用数字的个数

位权

一个数字在某个固定位置上所代表的值

整数自右向左,最低位为基数的0次幂

小数自左向右,最高位为基数的-1次幂

二进制

在计算机中处理、存放的数据都是以0和1的二进制编码形式存放的

优点:

  • 物理上容易实现,可靠性强
  • 运算简单,通用性强
  • 0、1数字与逻辑值”假”和”真”正好吻合

缺点:

  • 书写冗长(一般用16进制或8进制作为简化表示)

二进制运算

算术运算

加法运算规则:

  • $ 0+0=0 $
  • $ 0+1=1 $
  • $ 1+0=1 $
  • $ 1+1=10 $(向高位进位)

减法运算规则:

  • $ 0-0=0 $
  • $ 0-1=1 $(向高位借位)
  • $ 1-0=1 $
  • $ 1-1=0 $

乘法运算规则:

  • $ 00=01=1*0=0 $
  • $ 1*1=1 $

除法运算规则:

  • $ 0/1=0 $
  • $ 1/1=1 $

逻辑运算

计算机的逻辑运算是按位进行的,没有进位和借位关系

逻辑或运算规则:

只要两个逻辑变量中有一个为1,逻辑或的结果就为1

只有两个逻辑变量同时为0时,结果才为0

  • $ 0+0=0 $
  • $ 0+1=1 $
  • $ 1+0=1 $
  • $ 1+1=1 $

逻辑与运算规则:

只要两个逻辑变量中有一个为1,逻辑与的结果就为0

只有两个逻辑变量同时为1时,结果才为1

  • $ 0 \cdot 0=0 $
  • $ 0 \cdot 1=0 $
  • $ 1 \cdot 0=0 $
  • $ 1 \cdot 1=1 $

逻辑非运算规则:

对各位求反,即0变为1,1变为0

  • $ \bar{0} = 1 $
  • $ \bar{1} = 0 $

进制的转换

二进制数、八进制数、十六进制数转换成十进制数

按权展开相加

十进制数转换成二进制数、八进制数、十六进制数

整数部分:

除以基数取余法(最后倒写结果)

小数部分:

乘以基数取整法(最后正写结果)

很多情况下小数部分是无法精确转换的

二进制数、八进制数、十六进制数之间的转换方法

1位8进制数所表示的范围和3位二进制数相同,1位16进制数所表示的范围和4位二进制数相同

二进制转八进制:三合一

二进制转十六进制:四合一

八进制转二进制:一拆三

十六进制转二进制:一拆四

八进制与十六进制转换:先转二进制

数值在计算机中的表示与存储

机器数

数字的符号存放在该字节的最高位,称为符号位,也称数符

规定用0表示正,1表示负

这种符号数值化的数称为机器数

原码

机器数的最高位表示符号位,正数的符号位为0,负数的符号位为1,其余各位是数值的绝对值

问题:

  • 数值0有两种形式
  • 算术运算时符号位需要单独处理

反码

正数的反码就是其原码,负数的反码是符号位为1,其余各位按位取反

问题:

  • 数值0有两种形式
  • 算术运算时符号位需要单独处理

补码

正数的补码就是其原码,负数的补码是其反码在最低位加1

补码表示方法中,0的表示方式是唯一的

对补码再取一次补码可得原码(对8位二进制存放的负数,$ 原码+反码=1,0000,0000 $,这也便是补码的本质 )

对于8位二进制,编码$ 1000,0000 $是没有使用的(可以由反证法推出),可以用来扩充补码所能表示的数值范围

利用补码方法可以很方便地实现正负数的加法运算,简化电路的设计

数学原理:

若两个数a,b之和等于R,则称a,b互为,R称为

补数

求a的补码,就是求$ R-a $的值

对于运算$ x-y \(,可以将y取补码\) R-y \(,记为z,得\) x-y=x-(R-z)=x+z-R $

故利用补码可以化减为加

实数在计算机的表示

定点整数

小数点的位置在最低位的右边,也即

纯整数

定点小数

小数点的位置在符号位的右边,也即

纯小数

浮点数

利用类似科学记数法的形式表示,由和组成

阶码
尾数

$ 浮点数=尾符 \times 尾数 \times 2^{阶符 \times 阶码} $

阶码用定点整数表示,所占的位数确定了数值的范围

尾数用定点小数表示,所占的位数确定了数值的精度

字符的编码

ASCII码

采用7位二进制编码,最高位一般为0

在需要进行奇偶校验时,最高位可用于存放奇偶校验码

汉字的表示

称为国标码,是我国中文信息处理技术的发展基础

GB2312-1980

采用2字节的二进制编码,每字节的最高位为0,但为了在计算机内部能区分ASCII码和汉字,将最高位置1

缺点:

  • 编码效率不高
  • 没有繁体字

多媒体数据的表示

图形与图像

图形以矢量图形文件形式存储

图像以位图形式存储

数字化过程:

  • 采样
  • 量化
  • 编码

文件大小:

$ 图像字节数=列数\times行数\times颜色深度\div8 $

音频

文件大小:

$ 存储容量=采样频率(Hz)\times量化位数(bit)\times声道数\times时间(s)\div8 $

视频

一幅幅独立图像组成的序列按一定的速率连续播放

————————

数据的表示与存储

数据在计算机中的表示

数制

也称记数制,是用一组固定的符号统一的规则来表示数值的方法

数制

有两个基本要素:和

基数
位权

基数

在某种进位记数制中,每个数位上能够使用数字的个数

位权

一个数字在某个固定位置上所代表的值

整数自右向左,最低位为基数的0次幂

小数自左向右,最高位为基数的-1次幂

二进制

在计算机中处理、存放的数据都是以0和1的二进制编码形式存放的

优点:

  • 物理上容易实现,可靠性强
  • 运算简单,通用性强
  • 0、1数字与逻辑值”假”和”真”正好吻合

缺点:

  • 书写冗长(一般用16进制或8进制作为简化表示)

二进制运算

算术运算

加法运算规则:

  • $ 0+0=0 $
  • $ 0+1=1 $
  • $ 1+0=1 $
  • $ 1+1=10 $(向高位进位)

减法运算规则:

  • $ 0-0=0 $
  • $ 0-1=1 $(向高位借位)
  • $ 1-0=1 $
  • $ 1-1=0 $

乘法运算规则:

  • $ 00=01=1*0=0 $
  • $ 1*1=1 $

除法运算规则:

  • $ 0/1=0 $
  • $ 1/1=1 $

逻辑运算

计算机的逻辑运算是按位进行的,没有进位和借位关系

逻辑或运算规则:

只要两个逻辑变量中有一个为1,逻辑或的结果就为1

只有两个逻辑变量同时为0时,结果才为0

  • $ 0+0=0 $
  • $ 0+1=1 $
  • $ 1+0=1 $
  • $ 1+1=1 $

逻辑与运算规则:

只要两个逻辑变量中有一个为1,逻辑与的结果就为0

只有两个逻辑变量同时为1时,结果才为1

  • $ 0 \cdot 0=0 $
  • $ 0 \cdot 1=0 $
  • $ 1 \cdot 0=0 $
  • $ 1 \cdot 1=1 $

逻辑非运算规则:

对各位求反,即0变为1,1变为0

  • $ \bar{0} = 1 $
  • $ \bar{1} = 0 $

进制的转换

二进制数、八进制数、十六进制数转换成十进制数

按权展开相加

十进制数转换成二进制数、八进制数、十六进制数

整数部分:

除以基数取余法(最后倒写结果)

小数部分:

乘以基数取整法(最后正写结果)

很多情况下小数部分是无法精确转换的

二进制数、八进制数、十六进制数之间的转换方法

1位8进制数所表示的范围和3位二进制数相同,1位16进制数所表示的范围和4位二进制数相同

二进制转八进制:三合一

二进制转十六进制:四合一

八进制转二进制:一拆三

十六进制转二进制:一拆四

八进制与十六进制转换:先转二进制

数值在计算机中的表示与存储

机器数

数字的符号存放在该字节的最高位,称为符号位,也称数符

规定用0表示正,1表示负

这种符号数值化的数称为机器数

原码

机器数的最高位表示符号位,正数的符号位为0,负数的符号位为1,其余各位是数值的绝对值

问题:

  • 数值0有两种形式
  • 算术运算时符号位需要单独处理

反码

正数的反码就是其原码,负数的反码是符号位为1,其余各位按位取反

问题:

  • 数值0有两种形式
  • 算术运算时符号位需要单独处理

补码

正数的补码就是其原码,负数的补码是其反码在最低位加1

补码表示方法中,0的表示方式是唯一的

对补码再取一次补码可得原码(对8位二进制存放的负数,$ 原码+反码=1,0000,0000 $,这也便是补码的本质 )

对于8位二进制,编码$ 1000,0000 $是没有使用的(可以由反证法推出),可以用来扩充补码所能表示的数值范围

利用补码方法可以很方便地实现正负数的加法运算,简化电路的设计

数学原理:

若两个数a,b之和等于R,则称a,b互为,R称为

补数

求a的补码,就是求$ R-a $的值

对于运算$ x-y \(,可以将y取补码\) R-y \(,记为z,得\) x-y=x-(R-z)=x+z-R $

故利用补码可以化减为加

实数在计算机的表示

定点整数

小数点的位置在最低位的右边,也即

纯整数

定点小数

小数点的位置在符号位的右边,也即

纯小数

浮点数

利用类似科学记数法的形式表示,由和组成

阶码
尾数

$ 浮点数=尾符 \times 尾数 \times 2^{阶符 \times 阶码} $

阶码用定点整数表示,所占的位数确定了数值的范围

尾数用定点小数表示,所占的位数确定了数值的精度

字符的编码

ASCII码

采用7位二进制编码,最高位一般为0

在需要进行奇偶校验时,最高位可用于存放奇偶校验码

汉字的表示

称为国标码,是我国中文信息处理技术的发展基础

GB2312-1980

采用2字节的二进制编码,每字节的最高位为0,但为了在计算机内部能区分ASCII码和汉字,将最高位置1

缺点:

  • 编码效率不高
  • 没有繁体字

多媒体数据的表示

图形与图像

图形以矢量图形文件形式存储

图像以位图形式存储

数字化过程:

  • 采样
  • 量化
  • 编码

文件大小:

$ 图像字节数=列数\times行数\times颜色深度\div8 $

音频

文件大小:

$ 存储容量=采样频率(Hz)\times量化位数(bit)\times声道数\times时间(s)\div8 $

视频

一幅幅独立图像组成的序列按一定的速率连续播放