科数网
首页
题库
试卷
学习
VIP
你好
游客,
登录
注册
在线学习
计算机原理
二进制
二进制的加减乘除
最后
更新:
2025-06-08 21:10
查看:
397
次
反馈
同步训练
二进制的加减乘除
>上节介绍了原码、反码和补码,那么计算机就可以把加减乘除转换为相应码的运算。 ## 原码, 反码, 补码 再深入 计算机巧妙地把符号位参与运算, 并且将减法变成了加法, 背后蕴含了怎样的数学原理呢? 将钟表想象成是一个1位的12进制数. 如果当前时间是6点, 我希望将时间设置成4点, 需要怎么做呢?我们可以: 1. 往回拨2个小时: 6 - 2 = 4 2. 往前拨10个小时: (6 + 10) mod 12 = 4 3. 往前拨10+12=22个小时: (6+22) mod 12 =4 2,3方法中的mod是指取模操作, 16 mod 12 =4 即用16除以12后的余数是4. 所以钟表往回拨(减法)的结果可以用往前拨(加法)替代! 现在的焦点就落在了如何用一个正数, 来替代一个负数. 上面的例子我们能感觉出来一些端倪, 发现一些规律. 但是数学是严谨的. 不能靠感觉. 首先介绍一个数学中相关的概念: 同余 ## 同余的概念 两个整数a,b,若它们除以整数m所得的余数相等,则称a,b对于模m同余 记作 a ≡ b (mod m) 读作 a 与 b 关于模 m 同余。 举例说明: 4 mod 12 = 4 16 mod 12 = 4 28 mod 12 = 4 所以4, 16, 28关于模 12 同余. ## 负数取模 正数进行mod运算是很简单的.但是负数呢? 下面是关于mod运算的数学定义: $x m o d y=x-y[x / y], \quad$ for $y \neq 0$. 上面是截图,"取下界"符号找不到如何输入(word中粘贴过来后乱码)。下面是使用"L"和"J"替换上图的"取下界"符号: $x \bmod y=x-y L x / y J$ 上面公式的意思是: $x \bmod y$ 等于 $x$ 减去 $y$ 乘上 $x$ 与 $y$ 的商的下界. 以 $-3 \bmod 2$ 举例: -3 mod 2 = -3 - 2xL -3/2 J = -3 - 2xL-1.5J = -3 - 2x(-2) = -3 + 4 = 1 所以 (-2) mod 12 = 12-2=10 (-4) mod 12 = 12-4 = 8 (-5) mod 12 = 12 - 5 = 7 开始证明 再回到时钟的问题上: 回拨2小时 = 前拨10小时 回拨4小时 = 前拨8小时 回拨5小时= 前拨7小时 注意, 这里发现的规律! 结合上面学到的同余的概念.实际上: (-2) mod 12 = 10 10 mod 12 = 10 -2与10是同余的. (-4) mod 12 = 8 8 mod 12 = 8 -4与8是同余的. 距离成功越来越近了. 要实现用正数替代负数, 只需要运用同余数的两个定理: 反身性: a ≡ a (mod m) 这个定理是很显而易见的. 线性运算定理: 如果a ≡ b (mod m),c ≡ d (mod m) 那么: (
免费注册看余下 50%
非VIP会员每天15篇文章,开通VIP 无限制查看
上一篇:
原码、反码与补码
下一篇:
位运算
本文对您是否有用?
有用
(
0
)
无用
(
0
)
更多
学习首页
数学试卷
同步训练
投稿
题库下载
会议预约系统
数学公式
关于
科数网是专业专业的数学网站 版权所有 本站部分教程采用AI辅助生成,请学习时自行鉴别
如果页面无法显示请联系 18155261033 或 983506039@qq.com