binary - 将十进制数 7710 转换为 8 位二进制二进制补码
问题描述
我有一个关于二进制补码表示的问题,问题是将十进制数 7710 转换为 8 位二进制二进制补码:
7710 divide by 2 = 3855 remainder 0
3855 divide by 2 = 1927 remainder 1
1927 divide by 2 = 963 remainder 1
963 divide by 2 = 481 remainder 1
481 divide by 2 = 240 remainder 1
240 divide by 2 = 120 remainder 0
120 divide by 2 = 60 remainder 0
60 divide by 2 = 30 remainder 0
30 divide by 2 = 15 remainder 0
15 divide by 2 = 7 remainder 1
7 divide by 2 = 3 remainder 1
3 divide by 2 = 1 remainder 1
1 divide by 2 = 0 remainder 1
7710 = 1111000011110
1111000011110 + 1 = 1111000011111
我已经找到了值,但我的问题是如何以 8-bit 的形式表示它?
谢谢
解决方案
你不能。一个 8 位二进制补码数只能表示 [-128;127] 范围内的数字。7710不在这个范围内,所以你不能代表它。
为什么-128?因为 100 0000 是您可以表示的最低数字,即十进制表示中的 -128。
为什么是127?因为 0111 1111 是您可以表示的最高数字,即十进制表示的 127。
推荐阅读
- c# - 如何在 Xamarin Forms Platform 上点击 android 按钮时删除动画/阴影效果
- php - Laravel 5 命名约定 - Broker VS Manager
- terraform - 尝试将 Terragrunt (terraform) 与 Okta 一起使用
- lua - 如何获得最接近数字的方法?
- javascript - 删除多个用户脚本s 基于样式和/或 id - 如何创建它?
- python - 如何从行中减去数字以获得时差
- android - 片段在方向更改时创建两次
- android - 无法解析符号“BoundingBoxE6”
- javascript - 当事件来自 Django 服务器时,不调用 EventSource addEventListener 回调方法
- python - NumPy 用于设置行和列的索引