赞
踩
最近刷题总是遇到左右移操作,以及二进制原码,反码和补码,写下博客,记录总结。
符号位在内存中存放的最左边一位,如果该位为0,则说明该数为正;若为1,则说明该数为负。
注意:下面所涉及的二进制码皆以带符号位的八位二进制数为例!
原码:是最简单的机器数表示法,用最高位表示符号位,其他位存放该数的二进制的绝对值。
注意:下面所涉及的二进制码皆以带符号位的八位二进制数为例!
说明:二进制的加法规则 0 + 0 ------------------------- 0 1 + 0 ------------------------- 1 1 + 1 ------------------------- 10 正数:最左边一位 = 0 2的原码表示为:0000 0010 4的原码表示为:0000 0100 2 + 4 ------------------------- 6 0000 0110 负数:最左边一位 = 1 -2的原码表示为:1000 0010 -4的原码表示为:1000 0100 正数和负数相加: 2的原码表示为: 0000 0010 -2的原码表示为:1000 0010 2 + (-2) ------------------------- -4 1000 0100
可以看出:利用原码进行正数和负数做加操作,会出现问题,于是为了解决这个问题,引出了反码。
反码:正数的反码还是等于原码;负数的反码就是它的原码除符号位外,按位取反。
注意:下面所涉及的二进制码皆以带符号位的八位二进制数为例!
正数: 2的原码表示为:0000 0010 2的反码表示为:0000 0010 负数: -4的原码表示为:1000 0100 -4的反码表示为:1111 1011 正数和负数反码相加: 2的反码表示为: 0000 0010 -4的反码表示为:1111 1011 2 + (-4) -------------------------------- 1111 1101(反码) 1000 0010(转换成原码) -2 -2(原码十进制结果)
利用反码,我们可以解决一部分正数和负数的相加操作问题。
补码:正数的补码等于它的原码;负数的补码等于反码+1。
注意:下面所涉及的二进制码皆以带符号位的八位二进制数为例!
正数:
2的原码表示为:0000 0010
2的反码表示为:0000 0010
2的补码表示为:0000 0010
负数:
-4的原码表示为:1000 0100
-4的反码表示为:1111 1011
-4的补码表示为:1111 1100
关于原码,反码以及补码,下面这篇文章详细介绍了相关知识:
二进制的原码、反码、补码.
将一个数的各二进制位全部左移若干位,正负数低位均补0,左边移出部分丢弃。把一个数左移a位,相当于用该数乘以2a
注意:下面所涉及的二进制码皆以带符号位的八位二进制数为例!
正数:
4的原码表示为: 0000 0100
4的补码表示为: 0000 0100(正数三码合一声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/477942
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。