Страница 1 из 1

Поразрядные операции

Добавлено: 09 дек 2007, 18:45
Monopo
Подскажите, плиз, как записать следующее:
([a]МОД2)ИЛИ НЕ([a]МОД2[c]),
МОД2, ИЛИ - поразрядные, a,b,c - действительные, [x] - целая часть числа x.
И скажите, какие значения может принимать данное выражение?

Re: Поразрядные операции

Добавлено: 10 дек 2007, 09:34
BBB
целая часть от X: через "приведение типа":
(long) X

А что есть в переводе на русский ([a]МОД2[ b]) ????

Re: Поразрядные операции

Добавлено: 10 дек 2007, 22:40
Monopo
Примерно следующее: Целую часть от а СЛОЖИТЬ ПО МОДУЛЮ 2 с целой частью числа б.

Re: Поразрядные операции

Добавлено: 11 дек 2007, 10:09
BBB
Monopo писал(а):Примерно следующее: ...
Потрясающе! Ключевосе слово - "примерно". Учитывая, что речь идет о написании алгоритма/программы. (как тут не вспомнить анекдот про урок математике в грузинской школе: Гиви, сколько будет дважды два? -- Ну, где-то семь-восемь...)

Ну, тогда, если ИЛИ - поразрядное, то, вероятно, и НЕ - тоже поразрадная (побитовая) инверсия, и предполагая, что речь идет о четырехбайтных целых числах, то это будет примерно так:

Код: Выделить всё

  ( ((unsigned long)a) ^ ((unsigned long)b)
  ) |
  (0xFFFFFFFF ^
     ( ((unsigned long) a) ^ ((unsigned long)c)
     )
  )

Re: Поразрядные операции

Добавлено: 11 дек 2007, 14:27
Monopo
Спасибо! А какие значение может принимать сие выражение? Какого типа может быть вообще?

Re: Поразрядные операции

Добавлено: 11 дек 2007, 19:00
BBB
unsigned long и будет