2016-01-27 2 views
1

У меня есть этот кусок кода я собираюсь перевести в трудоемкость, но я не знаю, что это значит: A = B & C[0]Что и означает, как тройной оператор

Когда я Google тройного оператора Я не могу найти любое упоминание о &, только e1 ? e2 : e

Что это значит?

+0

Почему вы думаете, что это * тернарный оператор? Если вы так думаете, вы также думаете, что A = B + C [0] 'является тернарным оператором? – Andreas

+2

Я полагаю, что ваш учитель использовал книгу с ошибкой - аналогичный вопрос уже был дан здесь http://stackoverflow.com/questions/28160408/translating-c-to-mips-with-a-ternary-operator – VolAnd

+0

'&' is not тройственный оператор в вашем примере - это оператор * binary *. – Galik

ответ

0
bitwise AND 

Взгляните на это: https://docs.oracle.com/javase/tutorial/java/nutsandbolts/op3.html

И смотрите здесь для примера http://www.tutorialspoint.com/java/java_bitwise_operators_examples.htm

+1

Это побитовое И в C++. В Java это зависит от типов операндов; это может быть либо побитовое ИЛИ, либо логическое И-НЕ-короткое замыкание. –

+0

Я этого никогда не знал. Я узнал что-то новое сегодня. Спасибо –

2

Там нет тройной оператора здесь. Выражение эквивалентно A = (B & C[0]), то есть A присваивается результат поразрядного И применяется к B и C[0].

+1

... или логический И, если переменные являются типами 'boolean'. –

0

& здесь двоичный (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.

Смежные вопросы