【问题标题】:Bitwise OR of two binary numbers两个二进制数的按位或
【发布时间】:2014-06-19 12:00:00
【问题描述】:

摘自计算机系统和网络过去的论文:

这个问题是关于汇编语言的 a) 解释两个二进制数的按位或。举个例子。 [5 分]

我只是在做一些一般性的修改,由于没有标记方案,很难判断我是否正确,所以我想要一些建议或指出正确的方向。

我的想法: 在我们的例子中,按位 OR 采用两个相等长度的二进制数,并对它们执行逻辑包含 OR。

Example:  0101
       OR 0111
       --------
          0111

你觉得这个答案够不够?

【问题讨论】:

  • 我相信是这样,尽管没有强制执行“等长”限制。较短的操作数类型应在操作前隐式转换为较宽的操作数类型。
  • 我喜欢将 OR 操作视为 bits joiner,例如11000000 OR 00000011 = 11000011.
  • 等长是强制性的,我什至不会提及它,它只会增加混淆的可能性。操作数转换和“或”运算本身是两个完全不同的东西,每个都有自己的定义。
  • 我认为这句话,对它们执行逻辑包含 OR 太模糊了。它应该读取,对操作数的相同相对位位置中的相应位执行逻辑或,以确定结果中的位
  • 感谢 lurker,你说得对,它可能太模糊了!你的回答好多了!干杯:)

标签: assembly bit-manipulation bitwise-operators bitwise-or


【解决方案1】:

如果两个源位中的任何一个是1,则任何两个位的按位OR1

如果这是您对包容性 OR 的定义,那么是的,您是正确的。

您的问题可能需要一个“真值表”,类似这样的

 OR    0  1
    ._________
  0 |  0  1
    |
  1 |  1  1 

对不起我糟糕的 ascii 格式,目前我能做的最好。

无论如何,如果任一源中的任一位为1,则目标中的结果为1

【讨论】:

    猜你喜欢
    • 2011-08-09
    • 2017-12-02
    • 2014-10-05
    • 2015-11-15
    • 1970-01-01
    • 2016-03-23
    • 1970-01-01
    • 2017-03-14
    • 2017-02-13
    相关资源
    最近更新 更多