Показать сообщение отдельно
ТэМэ
.....
Аватар для ТэМэ
Сообщения: 2,906
Регистрация: 14.04.2009
Откуда: Антрацит!
Старый пост, нажмите что бы добавить к себе блог 27 марта 2012, 20:21
ВКонтакте Отправить сообщение через twitter для ТэМэ
  #2150 (ПС)
-Цитата от Ридл Гатофель Посмотреть сообщение
Смари, короче, есть четыре операции, как они в плюсах пишутся я хуй знает, но щас обрисую.

moveLeft
Сдигает побитово влево на указанное кол-во битов. Например:
Инпут: 1011 0111
moveLeft 3
Оутпут: 1011 1000

moveRight
По аналогии с верхним, тока двигает вправо.
Инпут: 1011 0111
moveRight 4
Оутпут: 0000 1011

rotateLeft
Крутит эту хуйню как круглую ленту. Ну как бля знаешь карусели, где лошади по кругу хуярют, вот также и тут. Ну то есть чтоб нагляднее было, объясню на смайлах:
Инпут:
rotateLeft 2
Оутпут:
Ну и теперь с числами:
Инпут: 1011 0111
rotateLeft 2
Оутпут: 1101 1110

rotateRight
Ну по аналогии короче
Инпут:
rotateRight 2
Оутпут:
Ну и теперь с числами:
Инпут: 1011 0111
rotateRight 2
Оутпут: 1110 1101

Ну вот короче, с этим разобрались. Теперь смари, вот твоё число:
10[1]1 0111
Между [] бит, который тебе надо сделать нулём.
Сначала делаем rotateLeft 2, получаем
[1]101 1110
Далее moveLeft 1, получаем:
1011 110[0]
То есть твой бит как бы был выдвинут за край, мы его типо вытолкнули нулём, который добавился справа, который я теперь выделил [].
Ну а теперь цель этот ноль захуярить на позицию той единицы.
rotateRight 3
10[0]1 0111

Вот и всё. Надеюсь ты меня понял. Вроде всё заебись расписал.
ого, что-то это слишком много как-то.. это точно С++ ?) просто мне препод сказал что там буквально пару строк нужно записать и всё) я просто дуб-дубом в програмировании))

offline
Ответить с цитированием