2010-10-04 4 views

ответ

3
  1. , если counter кратно 8

  2. установить direction элемент *ds равный direction элемент *ts

2

Первый проверяет, является ли результат бит-И на счетчике с 7 не равным нулю, а второй присваивает значение члена direction одной структуры члену direction другого.

+0

Где «одна структура» == «структура, на которую указывает указатель ds» и «другая» == «структура, на которую указывает указатель ts». – sepp2k

1

1) такой же, как

  1. if (!(counter & 7))
  2. if ((!(counter & 7)) != 0)
  3. if ((counter & 7) == 0)
  4. если нижние 3 бита счетчика равны нулю (или если счетчик является кратным 8)

2) так же, как

  1. (*ds).direction = (*ts).direction;
  2. заданное направление ds (должно быть структурного типа) в направлении ts
+0

В (1), я думаю, что в скобках часть шага 4 верна, если 'counter' is unsigned ... –

+0

Это зависит, я думаю, от представления. Для знака, величины и двух дополнений, я думаю, что он держится (три младших бита равны нулю, это означает, что число кратно 8) – pmg

+0

Действительно. На самом деле мне любопытно, что стандарт говорит о подписанных побитовых операторах. Я не мог найти какой-либо язык, специфичный для подписанных или неподписанных типов, поэтому я предполагаю, что они должны работать поразрядным представлениям. –

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