|
|
|
加法规则:0+0=01+0=10+1=11+1=0(有进位)
|
|
|
减法规则:0-0=01-0=11-1=00-1=1(有借位)
|
|
|
乘法规则:0×0=01×0=01×1=10×1=0
|
|
|
|
|
|
|
逻辑异或:0⊕0=00⊕1=11⊕0=11⊕1=0
|
|
|
逻辑非:
|
|
|
|
在计算机中所有的信息都是以二进制的形式表示,第一位为符号位,0为正数,1为负数。为了便于运算,带符号的二进制数有3种编码方法,即原码、反码和补码(小数部分只考虑数值部分)。下列公式中N表示真值,n表示整数部分的位数,m表示小数部分的位数。
|
|
|
(1)原码。最高位作符号位,其余各位为数值本身的绝对值。
|
|
|
|
|
|
|
(2)反码。正数的反码与原码相同;负数的反码是符号位为1,其余对原码各位取反。若N是整数,则
|
|
|
|
|
|
(3)补码。正数的补码与原码相同;负数的补码是反码末位加1(丢弃最高位向上的进位)。
|
|
|
|
|
|
|
另外,有的计算机编码用移码,常用于表示浮点数中的阶码,也就是补码的符号位取反。
|
|
|
|
计算机中,处理小数点的方法有两种,即定点和浮点。定点是指数中的小数点位置固定不变,通常把小数点固定在数值部分的最高位之前或最低位之后,分别为定点小数(纯小数)和定点整数(见下图)。现在整数一般是定点表示,而小数用浮点表示。字长为n的计算机整数的范围为-2n-1~2n-1-1。
|
|
|
|
|
浮点表示是指数中小数点的位置不固定,或者说是浮动的。浮点数的一般表示形式为
|
|
|
|
式中,S为数N的尾数;J表示数N的阶码;2为阶码的基数(见下图)。
|
|
|
|
|
浮点数由两部分组成:第一部分是指数部分,表示小数点浮动的位置;第二部分是尾数部分,表示数的符号和有效位数。在计算机中,二进制浮点数一般可表示成规格化形式,即尾数为纯小数且最高位与符号位不同值(0.5≤|S|<1)。
|
|
|
|
BCD码就是用几位二进制数表示一位十进制数。这种编码既具有二进制数的形式,又具有十进制的特点。应用比较广泛的有8421码、2421码和余3码。
|
|
|
8421码是将十进制数用4位二进制数表示,按自然二进制数的规律排列,且指定前面10种代码依次表示0~9的10个数码。8421码的各位权值是8、4、2、1,其名称也由此而来。2421码与8421码相似,所不同的是其权值依次为2、4、2、1,其编码的方式不唯一,下表中给出其中一种方案。
|
|
|
|
|
|
另外,还有一种格雷码,任意两个相邻的代码之间的格雷码仅有1位不同。
|
|
|
|
|
虽然原码与人的思维方式一致,但是运算时要单独处理符号位,而且0的表示不唯一,反码也存在同样的问题。所以计算机中定点数的加减运算用补码,符号位可一起处理。
|
|
|
补码加法运算规则:和的补码等于补码的和,即[X+Y]补=[X]补+[Y]补。
|
|
|
补码减法运算规则:差的补码等于被减数的补码加上减数取负后的补码。由[Y]补求[-Y]补的方法是[Y]补各位取反然后末位加1,即[X-Y]补=[X]补+[-Y]补。
|
|
|
字长为n的计算机整数的表示范围为-2n-1~2n-1-1,所以进行加减运算时要判断是否溢出。判断溢出方法除了能根据两数符号及运算结果符号判断外,还可以利用双进位位状态判断和利用变形码判断。
|
|
|
双进位位状态判断规则是:两个补码数实现加减运算时,若最高数值位向符号位的进位值与符号位产生的进位输出值不相同,则表明加减运算产生了溢出,可表示为
|
|
|
OVR=Cn-1⊕Cn(Cn-1是最高数值位的进位值,Cn是符号位的进位值)
|
|
|
在右边的例子中,Cn-1=1,Cn=0,则OVR=1,有溢出。
|
|
|
变形码判断规则是:用两位二进制数表示符号位,用00表示正数,用11表示负数,当两位符号位不同时,即结果为01表明两个正数相加结果大于机器所能表示的最大正数,称为"上溢";10表明两个负数相加小于计算机所能表示的最小负数,称为"下溢"。
|
|
|
|
|
|
原码乘(除)法:乘积的符号位由被乘(除)数和乘(除)数的符号位异或得到;数值部分由被乘(除)数和乘(除)数数值部分相乘(除)得到,方法与十进制乘法类似。
|
|
|
补码乘法:当两个乘数为正数时,[X×Y]补=[X]补×[Y]补,当Y为负数时,是用[X]补乘以[Y]补的数值位,然后再加上[-X]补。另外,还有用逻辑电路实现的由Booth夫妇提出来的比较法,可避免区分乘数的符号。
|
|
|
|
|
|
式中,S为数N的尾数,为规格化的二进制小数,机器中多用原码或补码表示;J为数N的阶码,为二进制整数,机器中多用移码或补码表示。
|
|
|
|
|
|
(1)对阶操作。比较两个浮点数的阶码值的大小,求△J=J1-J2。当其不等于0时,将原来阶码小的数的尾数右移|△J|位,其阶码加上|△J|。尾数右移时,对原码表示的尾数,符号位不参加移位,尾数高位补0;对补码表示的尾数,符号位要参加右移并保持不变。
|
|
|
(2)尾数运算。实现尾数加减运算,若得到的结果不满足规格化规则,就进行规格化处理。
|
|
|
当结果尾数的两个符号位不同时尾数运算溢出,此时应使尾数右移一位,阶码加1,称之为右规;当结果尾数不溢出时,但最高数值位与符号位相同时,应重复地使尾数左移,阶码减1,直到出现最高数值位与符号位不同时为止,称之为左规。
|
|
|
(3)舍入操作。在对阶和右规操作时,尾数低位上的若干位数值被移掉,会产生误差。可进行截断处理,无条件丢弃这些值;也可把这些值保存起来,最后采用0舍1入的方法处理,这样做很可能使尾数溢出,此时再做右规处理;或者若有被丢掉的值,则将末位恒置为1。
|
|
|
|
|
两个浮点数相乘,其乘积的阶码应为相乘两个数的阶码之和,其尾数应为相乘两数尾数之积。两个浮点数相除,商的阶码应为被除数阶码减去除数阶码的差,尾数应为被除数尾数除以除数尾数的商。乘除运算都可能出现结果溢出,或者不满足规格化要求,也必须进行检查和处理。
|
|
|
|
计算机处理的数据不仅有数码,还有字符、汉字、声音、图像等。
|
|
|
|
目前计算机中用得最广泛的字符集及其编码是由美国国家标准局(ANSI)制定的ASCII码(American Standard Code for Information Interchange,美国标准信息交换码),它已被国际标准化组织(ISO)定为国际标准,称为ISO 646标准。
|
|
|
标准ASCII码用7位二进制数表示,可以表示128种代码,每种代码对应一个字符(或控制码),ASCII码的低4位用作行编码,高3位用作列编码。其形式如下图所示。
|
|
|
|
|
在计算机的存储单元中,一个ASCII码值占8个二进制位,其最高位在计算机内部通常保持为0,在数据传输时可用作奇偶校验位。
|
|
|
由于标准ASCII字符集字符数目有限,在实际应用中往往无法满足要求。为此,国际标准化组织又制定了ISO 2022标准,它规定了在保持与ISO 646兼容的前提下将ASCII字符集扩充为8位代码的统一方法。ISO陆续制定了一批适用于不同地区的扩充ASCII字符集,每种扩充ASCII字符集分别可以扩充128个字符,这些扩充字符的编码均为高位为1的8位代码(即十进制数128~255),称为扩展ASCII码。
|
|
|
|
(1)汉字国标码。我国国家标准局于1981年颁布了《信息交换用汉字编码字符集.基本集》(GB 2312),规定6763个常用汉字和其他字符682个,共7445个符号。国标码规定,每个字符由一个两字节的代码组成。每个字节的最高位恒为0,共可表示128×128=16 384个符号。国标码规定了所有符号为94×94的方阵,行称为"区",列称为"位",行号和列号组成区位码。国标码并不等于区位码,而是由区位码稍作转换得到的,其转换方法为:先将十进制区码和位码转换为十六进制的区码和位码,再将这个代码的第一个字节和第二个字节分别加上20H,就得到国标码。如"保"字的国标码为3123H,它是经过下面的转换得到的:1703D→1103H+20H→3123H。
|
|
|
(2)汉字机内码。在计算机内部传输、存储、处理的汉字编码称汉字机内码,就是在国标码的基础上将两个字节的最高位全改为1,以便和ASCII码区分,也就是先将十进制国际码转换为十六进制,高字节和低字节分别加上80H。从区位码转换为机内码时先将十进制区码和位码转换为十六进制的区码和位码,再将这个代码的第一个字节和第二个字节分别加上A0H,就得到机内码。
|
|
|
(3)汉字输入码。为了方便从键盘输入汉字而设计的编码称为输入码,不同的输入法有不同的输入编码。实际上不管采用什么输入法,存入计算机的都是它的机内码。
|
|
|
(4)汉字字形码。文字字形存储在字库中的数字化代码称为字形码。汉字字形是以点阵方式表示汉字。用16×16点阵存储汉字时占用16×16÷8=32B。常用的有24×24点阵(占用24×24÷8=72B)、32×32点阵(占用128B)等。
|
|
|
|
矢量图形是用一系列计算机指令来描述和记录的一幅图的内容。一幅图像可认为是由一个个像点构成的,每个像点必须用若干二进制位表示出现实世界五彩缤纷的颜色。当将图像分解为一系列像点、每个点用若干比特表示时,这幅图像就被数字化了。以像素点阵形式描述的图像称为位图。图像的属性有分辨率和图像深度。图像的分辨率是指组成一幅图像的像素密度,即用每英寸多少点表示数字化图像的大小。图像深度是指存储每个像素所用的位数。如果一幅图像的图像深度为n位,则该图像的最多颜色数为2n种。数字图像数据量特别巨大,一个没有进行压缩的图像需要占用的内存空间可以使用以下公式进行计算:文件所占容量=(图像总像素×图像深度)/8B,假定画面上有150 000个点,每个点用24B来表示,则这幅画面就要占用450 000B。如果想在显示器上播放视频为25帧的画面,相当于处理1125 000B的信息量。因此,用计算机进行图像处理要求是很高的。所以要进行图像编码与压缩。从本质上来说,就是对要处理的图像源数据用一定的规则进行变换和组合,从而达到以尽可能少的代码(符号)来表示尽可能多的数据信息的目的。压缩通过编码来实现,或者说编码带来压缩的效果,目前对动态图像的压缩比一般在20~200倍,一般把此项处理称为压缩编码。对动态图像进行压缩处理的基本条件是:动态图像中帧与帧之间具有相关性。彩色图像可以用红、绿、蓝三基色表示。
|
|
|
|
|
(2)JPEG 2000标准:1997年提出,1999年完成。JPEG 2000基于小波变换的静止图像压缩标准,不仅有更优秀的压缩性能,而且有更丰富的处理功能。
|
|
|
(3)MPEG-1标准:用于多媒体和广播电视,数据率要求1.5Mb/s。
|
|
|
(4)MPEG-2/H.262标准:DVD制式的压缩标准,数据率要求4~10Mb/s。
|
|
|
(5)MPEG-4标准:1999年完成第3版,是一个新的视频和音频编码的国际标准。最大特点是基于对象的编码方式以及对合成对象的编码能力。支持固定和可变速率视频编码(低速小于64kb/s,中速64~384kb/s,高速384kb/s~4Mb/s),目的在于提供适合用于交互多媒体环境下应用的核心技术,解决视频信号的有效存储和传输问题。
|
|
|
(6)MPEG-7标准:对图像内容进行描述,根据描述进行一般检索。
|
|
|
|
|
|
声音是一种连续变化的模拟量,可以通过"模/数"转换器对声音信号按固定的时间进行采样,把它变成数字量(一旦转变成数字形式,便可把声音存储在计算机中并进行处理了)。和图像一样,声音也必须进行压缩,常见的格式有WAVE、MOD、MIDI、MP3、RA系列(RA、RAM和RM)、VQF、MD、CD等。
|
|
|
|
(1)采样。采样是把时间连续的模拟信号转换成时间离散、幅度连续的信号。
|
|
|
(2)量化。量化处理是把在幅度上连续取值的每一个样本转换为离散值表示,也称为A/D转换。
|
|
|
(3)编码。将量化后的声音信号按照一定的要求进行数据压缩和编码,以减少数据量,并按规定的格式将数据组织成为文件。
|
|
|
|
动画是将静态的图像、图形及图画等按一定的时间顺序显示出来的,从而形成连续的动态画面。电视是现代最有影响的多媒体信息传播工具,它传播的信号是模拟信号。数字视频与动画一样,是由一幅幅帧序列组成,这些帧以一定的速率播放就形成动态画面。
|
|
|
数字视频的信息量很大,必须对其进行压缩编码处理。帧间和帧内压缩是数字视频压缩中常用的压缩分类。
|
|
|
常用的视频文件格式有GIF文件、Flic文件、AVI文件、Quick Time文件、MPEG文件、RealVideo文件等。
|
|
|