【问题标题】:Translating C to MIPS with a ternary operator使用三元运算符将 C 转换为 MIPS
【发布时间】:2015-03-25 11:21:29
【问题描述】:

在我的课堂上,我们正在将 C 转换为 MIPS。

我们被要求翻译这个 sn-p: A = A ? B : C[0]

我相信我了解三元运算符,但这里想要什么? A 不应该是布尔值吗?那么它会在 MIPS 中用 1 或 0 值表示吗?

谢谢

【问题讨论】:

  • A 应该是算术或指针类型。在布尔上下文中,A 被评估为如同 A != 0 一样。

标签: c mips translate


【解决方案1】:

首先将三元表达式转换为伪代码可能会有所帮助,例如:

if A != 0       // if A is non-zero, i.e. TRUE
    A = B
else            // otherwise A is zero, i.e. FALSE
    A = C[0]

【讨论】:

  • 说得有道理,但零是从哪里来的?
  • 在 C 中,非零变量定义为 true
猜你喜欢
  • 2019-10-26
  • 2021-02-22
  • 1970-01-01
  • 1970-01-01
  • 2014-01-21
  • 2021-03-17
  • 2015-02-07
  • 2017-08-26
  • 1970-01-01
相关资源
最近更新 更多