【发布时间】: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。
我们被要求翻译这个 sn-p:
A = A ? B : C[0]
我相信我了解三元运算符,但这里想要什么? A 不应该是布尔值吗?那么它会在 MIPS 中用 1 或 0 值表示吗?
谢谢
【问题讨论】:
A 应该是算术或指针类型。在布尔上下文中,A 被评估为如同 A != 0 一样。
首先将三元表达式转换为伪代码可能会有所帮助,例如:
if A != 0 // if A is non-zero, i.e. TRUE
A = B
else // otherwise A is zero, i.e. FALSE
A = C[0]
【讨论】:
true。