深入理解计算机中的移位运算与乘除法运算

目录

深入理解计算机中的移位运算与乘除法运算

一、移位运算

(一)逻辑移位

(二)算术移位

(三)移位的作用

二、乘除法运算


在计算机科学领域,移位运算以及乘除法运算扮演着至关重要的角色。其中,移位运算的重点在于逻辑移位和算术移位,而乘除法运算虽然在过去 408 大题中手算规则考察较少,但运算基本原理依然是需要掌握的核心内容。

一、移位运算

(一)逻辑移位

逻辑移位主要用于无符号数,不考虑符号位。其规则较为简单,左移时高位部分丢出,低位部分补零;右移时低位部分移出,高位部分补零。例如,八位寄存器内容为 110(前面有三个零),左移一位后,最高位的 1 丢失,低位补零变为 100;逻辑右移时,低位的 0 消失,高位补零变为 011。

(二)算术移位

算术移位针对有符号整数,计算机中采用补码表示,所以重点学习补码的算术移位方式。左移时与逻辑移位相同,高位移出,低位补零;右移时低位移出,高位补上符号位。如补码 1001 左移,高位 1 丢失,低位补零变为 0010;右移时,低位 1 丢失,高位补 1 变为 1100。补码 0101 左移时,高位 0 丢失,低位补零变为 1010;右移时,因符号位为 0,高位补零变为 0010。不同老师对算术移位定义不同,王道课后习题定点整数部分采用袁春风老师解释方式,过去曾采用唐硕飞老师解释方式,相关不同定义已附录在笔记中。

(三)移位的作用

  1. 左移相当于乘二操作
    • 无论是逻辑左移还是算术左移,都可实现乘二功能。例如,无符号数 X 机器数为 0100(假设为四位),其真值乘二后转换为机器数为 1000,可见 X 除低位外的 15 位左移后得到 2X 高数位,移位操作比加法操作速度更快。对于有符号数,如 X 机器数为 11000(16 位),真值为负 16376,乘二后真值为负 32752,其机器数高 15 位与 X 低 15 位相同,说明算术左移可实现乘二。但需注意,左移若最高位为 1 被移除会发生溢出,有符号数算术左移若移出后的高位不同于移位后的符号位也会溢出,如 1001 左移变为 0010,1010 左移变为 0100,均发生溢出。
  2. 右移相当于除二操作
    • 逻辑右移和算术右移都可实现除二功能。通过尝试 X 和二分之 X 对应的真值及机器数可发现此规律。不过右移虽不会溢出,但可能影响精度,如逻辑右移时,若最后一位为 1 移出,相当于丢失二的零次方;补码右移时,低位权重位丢失,如补码 1001 和 0101 右移结果。

二、乘除法运算

过去 408 大题很少考察乘除法运算手算规则,如原码乘法、补码乘法、原码除法、补码除法手算过程。学长仅讲解乘法及除法运算基本原理,对于目标分数追求一百三、一百四的同学,可自行研究手算规则,其他同学可着重理解运算基本原理。

总之,移位运算在计算机中通过简单的位操作实现了乘除法的功能,在提高计算效率的同时也需要注意溢出和精度问题。而乘除法运算基本原理的理解,有助于我们深入把握计算机数据处理的核心机制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值