微机原理与接口技术--数制与码制

目录

一、数制转换:

二、算术运算:

三、逻辑运算:

四、有符号数的表示方法及溢出问题:

五、BCD 码:

六、ASCII 码:

一、数制转换:

1.十进制数转换为二进制数:

方法:除 2 取余法(整数部分)、乘 2 取整法(小数部分)。例如,将十进制数 10 转换为二进制数,用除 2 取余法,10 除以 2 商 5 余 0,5 除以 2 商 2 余 1,2 除以 2 商 1 余 0,1 除以 2 商 0 余 1,从下往上取余数得到二进制数 1010。

2.二进制数转换为十进制数:

方法:位置加权法。即每一位上的数字乘以该位的权重(基数的幂次方),然后相加。例如,二进制数 1101 转换为十进制数,计算过程为:

1*2^3+1*2^2+0*2^1+1*2^0=8+4+0+1=13。

3.十六进制数与二进制数的相互转换:

方法:每一位十六进制数对应四位二进制数。例如,十六进制数 A5 转换为二进制数为 10100101;反过来,二进制数 11010110 转换为十六进制数为 D6。

4.十六进制数与十进制数的相互转换:

方法:先将十六进制数转换为二进制数,再将二进制数转换为十进制数。例如,十六进制数 3A 转换为十进制数,先将 3A 转换为二进制数为 00111010,然后用位置加权法计算十进制数为

0*2^7+0*2^6+1*2^5+1*2^4+1*2^3+0*2^2+1*2^1+0*2^0 =58。

二、算术运算:

运算规则:在进行二进制数的算术运算时,要考虑字长(8 位或 16 位等)。例如,8 位二进制数的运算范围是 -128 到 127,如果超出这个范围就可能会产生溢出

举例:计算两个 8 位二进制数 01100001 和 01011001 的加法,结果为 10111010。但对于 8 位有符号数来说,因为最高位是符号位,真正能用于表示数值大小的只有 7 位,而这个结果超出了 7 位所能表示的范围,就产生了溢出错误。

三、逻辑运算:

1.与运算(AND):

规则:对应位都为 1 时,结果位才为 1,否则为 0。

举例:对二进制数 1010 和 1100 进行与运算,结果为 1000。因为第 1 位和第 3 位都是 1,所以这两位的结果为 1,其他位至少有一个 0,所以结果为 0。

2.或运算(OR):

规则:对应位只要有一个为 1,结果位就为 1,只有当两位都为 0 时,结果位才为 0。

举例:对二进制数 1010 和 1100 进行或运算,结果为 1110。因为第 1 位、第 2 位、第 3 位中至少有一个数在该位上为 1,所以结果相应位为 1。

3.异或运算(XOR):

规则:对应位不同时,结果位为 1,相同时为 0。

举例:对二进制数 1010 和 1100 进行异或运算,结果为 0110。第 2 位都是 0,所以结果位为 0;第 1 位、第 3 位、第 4 位不同,所以结果位为 1。

4.非运算(NOT):

规则:对每一位取反,1 变为 0,0 变为 1。

举例:对二进制数 1010 进行非运算,结果为 0101。

四、有符号数的表示方法及溢出问题:

1.原码:对于正数,原码就是其本身的二进制数;对于负数,原码为符号位是 1,其余位是该数绝对值的二进制表示。例如,正数 5 的原码是 00000101,负数 -5 的原码是 10000101。

2.反码:对于正数,反码与原码相同;对于负数,反码是除符号位以外,其余数取反。例如,正数 5 的反码是 00000101,负数 -5 的反码是 11111010。

3.补码:对于正数,补码与原码、反码相同;对于负数,补码是反码加 1。例如,正数 5 的补码是 00000101,负数 -5 的补码是 11111011。

4.溢出问题:当两个有符号数进行运算时,如果结果超出了该数据类型所能表示的范围,就会产生溢出。例如,8 位有符号数的运算结果超出了 -128 到 127 的范围,就发生了溢出。

五、BCD 码:

1.概念:BCD 码是一种用二进制编码表示十进制数的方法,程序员之间约定俗成的表示方式。

2.表示方式:分为组合(压缩)BCD 码分离(非压缩)BCD 码。例如,十进制数 56 的组合 BCD 码表示为 01010110(将 5 和 6 分别用 4 位二进制数表示后组合在一起);分离 BCD 码表示为 00000101 和 00000110(分别用两个字节表示 5 和 6)。

3.调整指令:在进行 BCD 码的运算时,需要进行调整。例如,加法运算后结果需要进行 “加 6 调整”(0110B),减法运算后结果需要进行 “减 6 调整”。

六、ASCII 码:

1.概念:计算机中的字符均用 ASCII 码来表示。

2.编码规则:字符的 ASCII 码值是唯一的,例如,‘0’的 ASCII 码值是 30H,‘A’的 ASCII 码值是 41H,‘a’的 ASCII 码值是 61H 等。最高位通常是 0(在某些扩展的 ASCII 码中可能有不同)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jiao₍˄·͈༝·͈˄*₎◞ ̑̑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值