这是什么意思……怎么得来的这个,-13+13是8421转化来的吗,那第一个数字是符号位 怎么还有一个0
这是什么意思……怎么得来的这个,-13+13是8421转化来的吗
这是什么意思……怎么得来的这个,-13+13是8421转化来的吗,那第一个数字是符号位 怎么还有一个0
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
关注 引自免费微信小程序:皆我百晓生
看起来你正在学习计算机科学中的二进制表示法,特别是关于补码(Two's Complement)的概念。补码是用来在二进制系统中表示负数的一种方式。这里是一个详细的解释:
补码的基本规则是,一个正数的补码就是它的原码(即直接按位转换为二进制),而一个负数的补码则是取反加一得到的。
例如,对于十进制的13,其二进制表示为
00001101
,这是一个正数,所以补码也是00001101
。对于十进制的-13,其二进制表示可以通过将13的补码取反再加一得到。13的补码是
00001101
,取反得到11110010
,然后加一得到11110011
,这就是-13的补码。在你提供的例子中,他们进行了一些基于补码的计算:
-
对于
13 - 15
的计算,首先将每个数转换成补码:(13)
补 =00001101
(-15)
补 =11110011
然后执行减法,实际上是做加法
-15 + (-13)
,因为减去一个负数等同于加上它的相反数。00001101 (13)补 + 11110011 (-15)补 ________________ 11110000 (结果)
因为结果超过了8位,所以要进行模2^8(也就是128)的舍入。在这个例子中,最高位的溢出不会影响其他位的结果,所以我们只需保留低8位,得到
-2
的补码11110000
。 -
接下来是
-13 - 15
的计算,同样的步骤:(13)
补 =00001101
(-15)
补 =11110011
加上
-13
的补码,得到-28
的补码11100100
。 -
在最后一部分,他们展示了几个二进制补码的加减操作,并给出了答案。例如:
13 + 10
变成001101 + 001010
,结果是010111
,即十进制的23。-13 - 10
变成110011 + 110110
,结果是111101
,即十进制的-3。-23 + 10
变成101001 + 001010
,结果是110011
,即十进制的-3。-13 - 10
再次出现,结果与之前相同。
这些计算都是通过将每个数转换成补码,然后执行相应的二进制加法或减法得出的。如果你对某个具体步骤有疑问,可以告诉我,我会进一步解释。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录-
悬赏问题
- ¥15 单纯型python实现编译报错
- ¥15 c++2013读写oracle
- ¥15 c++ gmssl sm2验签demo
- ¥15 关于模的完全剩余系(关键词-数学方法)
- ¥15 有没有人懂这个博图程序怎么写,还要跟SFB连接,真的不会,求帮助
- ¥15 PVE8.2.7无法成功使用a5000的vGPU,什么原因
- ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
- ¥15 安装quartus II18.1时弹出此error,怎么解决?
- ¥15 keil官网下载psn序列号在哪
- ¥15 想用adb命令做一个通话软件,播放录音