补码原理——模运算
来源:互联网 发布:mac air能玩魔兽世界 编辑:程序博客网 时间:2024/06/06 18:48
在计算机中,减法可以用加法来代替,用的就是补码。说道补码,就得说道“模”这个概念。假如我有一个计算机,它只有四个bit,这四个bit所能表示的值的范围用二进制表示是0000到1111,即从0到15。这样,这个计算机就只能表示这16个数,别的东西它就无法表示了。这个16就是这个计算机的“模”,在这个计算机上进行的计算只能在“模”的表示范围之内。
如果我们要计算5-3的值,我们既可以用5减去3,也可以用5加上13。这是为什么呢?这就像我们的钟表,它从1点走到12点之后,又回到了1点。我们的计算机也是,从0走到15之后,再往下走就又回到了0,就像我们转了一个圈一样。我们从5这个位置往回退3个格,就完成了5-3这个计算。我们也可以从5这个位置往前走,一直走到15,这时我们走了10个格,然后我们继续往前走,走到0,然后到1,然后就走到了2。这样,我们往前走了13个格之后,也到了2这个位置。所以说,在我们这个计算机中,减3和加13是一样的。而3+13=16,我们说在模16的系统下,3和13是互补的。
这样,我们计算5-3就可以换成5+13。3的二进制表示为0011,5的二进制表示为0101。这样,0101-0011就可以表示为0101+(-0011)。我们在计算机中都是把负数用其补码表示,-0011的补码就是10000-0011(即16-3,也就是13)。10000-0011=1+1111-0011=1+(1111-0011)=1+1100=1101。我们总说补码是“按位取反再加一”,看了上面这个式子相信大家就会明白了,其实就是把10000-0011换成了1111-0011再加1的形式。然后,0101-0011就换成了0101+1101,它们计算出来的结果为10010。由于我们的计算机只有四个bit,所以结果为0010。即,在模16的计算机中,5-3=5+13=2
如果我们要计算5-3的值,我们既可以用5减去3,也可以用5加上13。这是为什么呢?这就像我们的钟表,它从1点走到12点之后,又回到了1点。我们的计算机也是,从0走到15之后,再往下走就又回到了0,就像我们转了一个圈一样。我们从5这个位置往回退3个格,就完成了5-3这个计算。我们也可以从5这个位置往前走,一直走到15,这时我们走了10个格,然后我们继续往前走,走到0,然后到1,然后就走到了2。这样,我们往前走了13个格之后,也到了2这个位置。所以说,在我们这个计算机中,减3和加13是一样的。而3+13=16,我们说在模16的系统下,3和13是互补的。
这样,我们计算5-3就可以换成5+13。3的二进制表示为0011,5的二进制表示为0101。这样,0101-0011就可以表示为0101+(-0011)。我们在计算机中都是把负数用其补码表示,-0011的补码就是10000-0011(即16-3,也就是13)。10000-0011=1+1111-0011=1+(1111-0011)=1+1100=1101。我们总说补码是“按位取反再加一”,看了上面这个式子相信大家就会明白了,其实就是把10000-0011换成了1111-0011再加1的形式。然后,0101-0011就换成了0101+1101,它们计算出来的结果为10010。由于我们的计算机只有四个bit,所以结果为0010。即,在模16的计算机中,5-3=5+13=2
1 0
- 补码原理——模运算
- 关于补码运算原理
- [微机原理]补码运算原理
- 补码——为cpu运算产生的补码
- 补码原理——负数为什么要用补码表示
- 从二进制补码到十进制补码及其内的运算——关于补码的一点学习
- 计算机中位运算揭秘——补码、原码
- 机器语言——码运算(详解反码补码由来)
- 位运算——原码反码补码
- 补码运算
- 补码运算
- 补码原理
- 补码原理
- 补码原理
- 计算机基础之为什么要有补码运算及反码加1得补码的原理
- [计算机基础]补码、模与运算
- 模运算系统和补码表示
- 黑马程序员——原码反码补码和java中的移位运算
- Java垃圾收集学习笔记(转)
- Android修改浏览器书签和主页
- Django View Request和Response
- 蓝桥杯 历届试题 错误票据 (输入)
- iOS 解析HTML数据
- 补码原理——模运算
- Maven和Ant
- [UnityShader2]ShaderLab基础
- linux中的m4文件
- 案例2
- Android中BroadCast与Activity之间的通信
- 前台运行服务startForeground
- yii学习点滴
- 蓝桥杯 历届试题 小朋友排队