binary - 如何将十进制转换为 8 位有符号二进制?
问题描述
假设我需要将十进制 -125 转换为有符号的 8 位整数,我该怎么做?
我是一名计算机专业的学生,我正在努力解决这个问题。我了解将其转换为 base 2 的基础知识,但我无法得到答案。
谢谢
解决方案
有符号的 8 位整数保留其最高位作为符号。1
表示数为负数,0
表示数为正数。让我们从那里开始。
您要转换的数字是-125
,所以第一位应该是1
。
1XXX XXXX
对于接下来的 7 位,我们将查看它们所代表的数字有多少次进入我们尝试转换的数字。
我们数字的第二位代表2^6
或64
。我们问多少次64
可以进去125
,发现答案是1.953125
。
我们不能将这个数字表示为 a1
或 a 0
,但我们可以这样考虑:
64 进入 125 一次,余数为 0.953125 次(或 61)
让我们在第二位中计算一次,并将余数61
用作我们的新数字。
11XX XXXX
接下来是代表2^5
或的第三位32
。32
可以进去多少次61
?答案不是一个整数,1.90625
所以我们再次遵循上一步的逻辑:1
用作我们的第三个数字和29
我们的新数字。
111X XXXX
第 4 位表示2^4
or16
进入29
一次,余数为13
。
1111 XXXX
第 5 位表示2^3
or8
进入13
一次,余数为5
。
1111 1XXX
第 6 位代表2^2
or4
进入5
一次,余数为1
。
1111 11XX
第 7 位代表2^1
或2
0 次变为 1。
1111 110X
第八位和最后一位代表2^0
或1
进入1
一次。
1111 1101
因此,我们的 8 位有符号表示-125
是11111101
。
推荐阅读
- javascript - 连接到数据库时从不调用 React Infinite Render 或 Handler
- powershell - powershell - 按列将csv拆分为多个csv
- ruby-on-rails - 如何找到()传递给 sidekiq 工作人员的资源?
- webots - Webbots 模拟:Mobsya 的 Thymio2 笔不写字
- ios - 如何在一定带宽内围绕中心频率发射噪声
- java - 如何找出哪个元素导致 Hibernate/Spring Data 中的事务错误?
- java - 如何从 Webview 的页面内部获取 json 响应(我得到用户代理的响应)?
- python - Django获取登录用户的用户名并将其传递给模型
- ant-media-server - 如何在 Ant Media Server 中使用 HLS 流式传输 VoD 文件?
- c# - 格式化文本框以在运行时以带小数的千位分隔符数字的形式显示用户输入