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

Модераторы: Romeo, Hawk, Absurd, WinMain, DeeJayC

Ответить
Аватара пользователя
Monopo
Сообщения: 119
Зарегистрирован: 06 дек 2007, 20:08
Откуда: Linux

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

Сообщение Monopo » 09 дек 2007, 18:45

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

BBB
Сообщения: 1272
Зарегистрирован: 27 дек 2005, 13:37

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

Сообщение BBB » 10 дек 2007, 09:34

целая часть от X: через "приведение типа":
(long) X

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

Аватара пользователя
Monopo
Сообщения: 119
Зарегистрирован: 06 дек 2007, 20:08
Откуда: Linux

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

Сообщение Monopo » 10 дек 2007, 22:40

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

BBB
Сообщения: 1272
Зарегистрирован: 27 дек 2005, 13:37

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

Сообщение BBB » 11 дек 2007, 10:09

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

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

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

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

Аватара пользователя
Monopo
Сообщения: 119
Зарегистрирован: 06 дек 2007, 20:08
Откуда: Linux

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

Сообщение Monopo » 11 дек 2007, 14:27

Спасибо! А какие значение может принимать сие выражение? Какого типа может быть вообще?
Юный Падаван

BBB
Сообщения: 1272
Зарегистрирован: 27 дек 2005, 13:37

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

Сообщение BBB » 11 дек 2007, 19:00

unsigned long и будет

Ответить