&
здесь двоичный (2 входа) оператор «побитовый». В этом случае у вас есть:
A = B & C[0];
Так A
получит результаты бит за битом и-рый в B
и C[0]
. Представим, что A, B и C [0] два 32-битных целых чисел, которые имеют значения I рандомизированы их, и позволяет просматривать эту операцию в двоичном виде:
B = 0000 0001 0010 0100 1000 1001 1011 1111
C[0] = 1001 1110 1101 1101 1010 1010 1010 0101
A = 0000 0000 0000 0100 1000 1000 1010 0101 (the and of the two values above)
то есть A
имеет только 1
бит где оба B
и C[0]
имеют 1
бит.
В десятичной форме это 19171775 & 2665327269 = 297125
.
BTW, тройной оператор имеет 3 входа, наиболее распространенным является ?:
, как в R = C ? B : A
.
Почему вы думаете, что это * тернарный оператор? Если вы так думаете, вы также думаете, что A = B + C [0] 'является тернарным оператором? – Andreas
Я полагаю, что ваш учитель использовал книгу с ошибкой - аналогичный вопрос уже был дан здесь http://stackoverflow.com/questions/28160408/translating-c-to-mips-with-a-ternary-operator – VolAnd
'&' is not тройственный оператор в вашем примере - это оператор * binary *. – Galik