twos-complement - 如何用二进制表示负数
问题描述
我在一个网站上阅读了这一段,我对为什么100000
等于 -32 感到困惑。
有符号二进制数的一个警告是溢出,其中加法或减法问题的答案超过了可以用分配的位数表示的大小。请记住,符号位的位置从问题的一开始就固定了。对于最后一个示例问题,我们使用五个二进制位来表示数字的大小,最左边(第六)位作为负权重或符号位。用 5 位来表示幅度,我们有 25 个表示范围,即从 0 到最大值的 32 个整数步长。这意味着我们可以表示高至 +31 (011111) 或低至 -32 (100000) 的数字。
为什么 -32 等于 100000。是符号幅度格式还是 2s 补码?
解决方案
有符号二进制 - 最左边的位是负数。
**5** 4 3 2 1 0
**-2** 2 2 2 2 2
-2 到 5 号是 32。
推荐阅读
- json - Postman JSON Body Comments - 我不想发送评论,只是想用它们来提醒自己
- javascript - 如何优化此算法的速度?Django 和 Javascript
- amazon-web-services - 用于 ECR 扫描问题的 AWS EventBridge 模式
- android - 无法将 java.util.HashMap 类型的值转换为 int
- javascript - Javascript Object.entries 在 Internet Explorer 11 中不起作用,不寻找 polyfills 作为解决方案
- airflow - 如何升级到 Airflow 2.0?
- python - 如何在 Python 的 TCP 套接字中请求输入?
- css - CSS:绝对定位问题
- bison - 匹配野牛中的多个模式
- linux - rm -rf 等效于 Windows 批处理脚本