-Цитата от Ридл Гатофель Смари, короче, есть четыре операции, как они в плюсах пишутся я хуй знает, но щас обрисую.
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
Вот и всё. Надеюсь ты меня понял. Вроде всё заебись расписал.
ого, что-то это слишком много как-то.. это точно С++ ?) просто мне препод сказал что там буквально пару строк нужно записать и всё) я просто дуб-дубом в програмировании))