|
67 / 42 / 30
Регистрация: 26.03.2019
Сообщений: 269
|
||||||
Записать поверх биты из одного числа в другое26.07.2021, 19:04. Показов 7105. Ответов 73
Метки нет (Все метки)
Скопировать первые
end - start + 1 битов из A и записать поверх в B, начиная с позиции start по позицию end. Разрешается использовать только побитовые операцииПримеры работы функции:
0
|
||||||
| 26.07.2021, 19:04 | |
|
Ответы с готовыми решениями:
73
Как поменять биты из одного числа в другое на определённом отрезке, используя только битовые операции? Очень большие числа: узнать, есть ли остаток от деления одного числа на другое
|
|
|
|||
| 28.07.2021, 10:35 | |||
(int A, int B, int Start, int End) чем (int B, int A, int Start, int End).И по сути получилось так, что и задание написано неверно, и функция делает непонятно что. Скрестив одно с другим мы нарвались на такие вот исследования. Добавлено через 1 минуту
0
|
|||
|
67 / 42 / 30
Регистрация: 26.03.2019
Сообщений: 269
|
|||||||
| 28.07.2021, 10:58 [ТС] | |||||||
0
|
|||||||
|
67 / 42 / 30
Регистрация: 26.03.2019
Сообщений: 269
|
|
| 28.07.2021, 20:33 [ТС] | |
|
wizard41,
В воздухе завис вопрос, как отрефакторить функцию на работу с int. Все оказалось не так просто
0
|
|
|
|
|||||||
| 28.07.2021, 20:40 | |||||||
|
Добавлено через 56 секунд
0
|
|||||||
|
67 / 42 / 30
Регистрация: 26.03.2019
Сообщений: 269
|
||
| 29.07.2021, 07:07 [ТС] | ||
Foo(A: -1, B: 0, i: 31, j: 31) = 2147483647 проходит. А для Foo(554216104, 15, 0, 31) = 15 нет
0
|
||
|
|
||
| 29.07.2021, 10:24 | ||
|
0
|
||
|
67 / 42 / 30
Регистрация: 26.03.2019
Сообщений: 269
|
||||||||||||
| 29.07.2021, 10:48 [ТС] | ||||||||||||
Foo(554216104, 15, 0, 31) копирование от 0 до 31 бита должно сделать B == A. Ответ 15 верен.
0
|
||||||||||||
|
|
||
| 29.07.2021, 11:12 | ||
Foo(554216104, 15, 0, 31) = 15, остальные два примера перестанут работать (т.е. будут возвращать не те значения, которые "нужны"). О чем это говорит?
0
|
||
|
67 / 42 / 30
Регистрация: 26.03.2019
Сообщений: 269
|
|
| 29.07.2021, 11:13 [ТС] | |
|
0
|
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|||
| 29.07.2021, 11:30 | |||
|
В целочисленных типах ничего не "зарезервировано". unchecked.
1
|
|||
|
|
|||
| 29.07.2021, 11:35 | |||
|
Добавлено через 5 минут
0
|
|||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||
| 29.07.2021, 11:38 | ||
|
Но смена знака вполне возможна — для чего и стоит использовать unchecked.
0
|
||
|
67 / 42 / 30
Регистрация: 26.03.2019
Сообщений: 269
|
||
| 29.07.2021, 11:48 [ТС] | ||
15 = 0000_0000_0000_0000_0000_0000_0000_1111В результате копирования от 0 до 31 бита: Пройдем пошагово по функции По функции вроде все так, как надо. Но на практике ответ выходит другой
0
|
||
|
67 / 42 / 30
Регистрация: 26.03.2019
Сообщений: 269
|
||
| 29.07.2021, 12:24 [ТС] | ||
int.MaxValue = 1111_1111_1111_1111_1111_1111_1111_1111.Прошелся вновь по функции однако результат не изменился. Маска не имеет единичных битов, тогда B & mask аналогично, a A << start не меняет значения, т.к. start = 0. Итого (B & mask) | (A << start) => 15
0
|
||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||
| 29.07.2021, 12:37 | ||
|
1111_1111_1111_1111_1111_1111_1111_11112 = -110
0
|
||
|
67 / 42 / 30
Регистрация: 26.03.2019
Сообщений: 269
|
|||||
| 29.07.2021, 12:42 [ТС] | |||||
|
В таком случае вопрос остается прежним.
0
|
|||||
| 29.07.2021, 12:42 | |
|
Из одного числа вычесть другое
MikroPascal for AVR - по "алиасам", биты одного байта(переменной) назначить на биты других байтов(портов, пинов) Копирование битов из одного числа в другое
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства.
Жизнь действительно предъявляет каждому. . .
|
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
|
Лето уходит
kumehtar 17.08.2026
|
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
|
|
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины".
За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html
Задача: . . .
|
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|