当前位置:首页 > 软考教材分享:程序员考试考前串讲
程序员 http://www.educity.cn/jiaocheng/zg14.html
13000.1-1993的全部中日韩(CJK)统一汉字字符和全部中日韩统一汉字Extension A和Extension B的字符。 2.机内码
汉字机内码采用的是两个字节的编码,而每个编码只使用低7位,这样就和ASCII混淆了,因此在机内表示时将每个字节的最高位置为1.
汉字机内码与国标码的关系为:机内码=国标码+8080H.例如,已知汉字\大\的国标码为3473H,其机内码为3473H+8080H=B4F3H.
如果每个点用1位,则存储一个24×24点阵的汉字需用24*24/8=72字节(1字节=8位)。
2.3.9 逻辑运算
在本知识点中,主要考查算术移位、逻辑移位、逻辑运算等。
在计算机中,运算可以分为算术运算和逻辑运算。逻辑变量之间的运算称为逻辑运算。二进制数1和0在逻辑上可以代表\真\与\假\、\是\与\否\、\有\与\无\这种具有逻辑属性的变量就称为逻辑变量。
逻辑运算与算术运算的主要区别是:逻辑运算是按位进行的,位与位之间不像加减运算那样有进位或借位的联系。
逻辑运算主要包括三种基本运算,分别是逻辑加法(或运算)、逻辑乘法(与运算)和逻辑否定(非运算)。此外,异或运算(半加运算)也很有用。 1.逻辑加法
逻辑加法通常用符号\或\∨\来表示。逻辑加法运算规则如下: 0+0=0,0∨0=0
程序员 http://www.educity.cn/jiaocheng/zg14.html
0+1=1,0∨1=1 1+0=1,1∨0=1 1+1=1,1∨1=1
从上式可见,逻辑加法有\或\的意义,因此,也称为逻辑或运算。也就是说,在给定的逻辑变量中,A或B只要有一个为1,其逻辑加的结果就为1,只有两者都为0时,逻辑加的结果才为0.
例如,某逻辑电路有两个输入端分别是X和Y,其输出端为Z.当且仅当两个输入端X和Y同时为0时,输出Z才为0,则该电路输出Z的逻辑表达式为X+Y. 2.逻辑乘法
逻辑乘法通常用符号\×\或\∧\或\·\来表示。逻辑乘法运算规则如下: 0×0=0,0∧0=0,0·0=0 0×1=0,0∧1=0,0·1=0 1×0=0,1∧0=0,1·0=0 1×1=1,1∧1=1,1·1=1
不难看出,逻辑乘法有\与\的意义,因此,也称为逻辑与运算。它表示只当参与运算的逻辑变量都同时取值为1时,其逻辑乘积才等于1.只要有一个逻辑变量为0,其结果就为0. 例如,用二进制数0与累加器X的内容进行与运算,并将结果放在累加器X中,一定可以完成对X的\清0\操作。 3.逻辑否定
逻辑否运算又称为逻辑非运算。其运算规则为:
程序员 http://www.educity.cn/jiaocheng/zg14.html
4.异或逻辑运算
异或运算通常用符号\⊕\表示,其运算规则为: 0⊕0=0,0⊕1=1,1⊕0=1,1⊕1=0
即两个逻辑变量相异(一个为0,另一个为1),结果才为1.
例如,在进行定点原码乘法运算时,乘积的符号位是被乘数的符号位和乘数的符号位通过异或运算来获得。因为原码的符号位表示数的正负,0表示正数,1表示负数。被乘数和乘数都是正数时,值为正数;都为负数时,值也为正数;只有当一个数是正数,另一个数是负数时,值才为负数。
我们在前面所举的例子都是一位数的操作,事实上,多位数进行逻辑运算时,也是按照\逐位运算\的规则进行的。例如,8位累加器A中的数据为FCH,若将其与7EH相异或,则累加器A中的数据为82H.因为将FCH和7EH转换为二进制数,得到11111100和01111110,根据异或的运算规则,可以得到10000010,然后将10000010转换成十六进制,得到82H. 5.移位
在计算机中,实现乘除运算的方案有三种:软件实现、通过逻辑线路来将乘除运算变换为移位操作;设置专有的乘法、除法器。其中以采用移动操作来实现居多。而移位操作主要包括算术移位、逻辑移位和循环移位三种,如表2-5所示。
表2-5 移位操作的类型
例如,对8位累加器A中的数据7EH,如果逻辑左移一次,则累加器A中的数据为FCH.
程序员 http://www.educity.cn/jiaocheng/zg14.html
因为十六进制数7EH转换成二进制为01111110,根据表2-5关于逻辑移位的描述,在移位时不需要考虑符号位,因此,只需将数左移一位,右边空出来的部分补零,这样就得到二进制数11111100,再转换成十六进制表示就是FCH.
不同码制机器数移位后的空位填补规则如表2-6所示。
表2-6 空位填补规则
说明:
(1)机器数为正时,不论左移或右移,空位均添0.
(2)由于负数的原码其数值部分与真值相同,故在移位时只要使符号位不变,其空位均添0.
(3)由于负数的反码其各位除符号位外与负数的原码正好相反,故移位后所添的代码应与原码相反,即全部空位添1.
(4)分析任意负数的补码可发现,当对其由低位向高位找到第一个\时,在此\左边的各位均与对应的反码相同,而在此\右边的各位(包括此\在内)均与对应的原码相同,即添0;右移时因空位出现在高位,则添补的代码应与反码相同,即添1.
例如,补码10110100算术右移2位的结果是11101101.因为最高位为1,表示是负数,1作为符号位保持不动,其他各位向右移动2位(0110110→01101),这样,左边就空了2位,根据表2-6的规则,这里应该补1,则变为1101101,再加上符号位1,最后结果为
共分享92篇相关文档