【问题标题】:Sign-magnitude and two's compliment符号幅度和二进制补码
【发布时间】:2020-04-08 12:49:30
【问题描述】:

我正在做作业,但被卡住了,谁能帮忙?

CIPOL 的管理层购买了一台新计算机,该计算机位于 Teshie 周围的一个研究实验室,用于帮助分析从 COVID-19 疑似病例中采集的血液样本。在对计算机进行测试时,技术人员意识到它只能处理以符号幅度形式输入其中的数据。但是,CIPOL 中的所有设备都在 2'补码环境中工作。目前没有连接旧系统和新计算机的接口。作为技术团队负责人,您被要求向管理层简要介绍手头的问题。你要:

批判性地解释您的团队在新旧计算机方面面临的挑战,并提出解决方案。

这是我对我不确定是否正确的问题的回答:

符号幅度是计算机存储负数的一种方式。还有另外两种方式,即 1 的补码和 2 的补码。以符号大小表示数据的新计算机将在旧系统中完美运行。

【问题讨论】:

  • 不对。谷歌符号幅度表示并考虑一下。您如何将其转换为 2s 补码?
  • @Eraklon 是正确的,通过快速谷歌搜索回答问题应该不会有那么大的麻烦;也有很多关于它的 YouTube 视频。马上,您就会找到康奈尔大学的 Thomas Finley 的 this neat article
  • @Abubakari Sadic,我的答案缺少什么?

标签: binary theory twos-complement


【解决方案1】:

新计算机将与旧系统无缝协作。

1。有符号和幅度二进制表示

符号幅度使用第一位来表示数字的符号。所以,例如:

  • 000 为 0。
  • 001 是 1,第一个 0+ 符号。
  • 101 是 -1,第一个 1- 符号。

2。二补码二进制表示

这种表示翻转数字的位并加一来表示负数:

  • 000 仍为 0。
  • 001 也是 1。
  • 111 是 -1。基本上将001的每一位都翻转并加1。

3。解决方案

我想你会想要将 从有符号表示转换为二补码表示,因为实验室中的其他所有东西都已经使用了有符号表示。

  • 正数
    • 无需更改。
  • 负数
    • 即,如果第一位是1
      1. 将第一位替换为0
      2. 翻转所有位(这是一个简单的NOT 逻辑运算符)。
      3. 新号码加 1。
    • 1011 或 -3 在 4 位的有符号表示中的示例:
      1. 将第一位替换为00011
      2. 翻转所有位 → 1100
      3. 新号码加 1 → 1101

4。延伸阅读

有很多关于这个主题的教程、视频和文章。如果您想了解更多信息:

【讨论】:

    猜你喜欢
    • 2016-05-18
    • 1970-01-01
    • 2015-11-28
    • 1970-01-01
    • 1970-01-01
    • 2015-07-04
    • 1970-01-01
    • 2019-02-02
    • 1970-01-01
    相关资源
    最近更新 更多