|
67 / 42 / 30
Регистрация: 26.03.2019
Сообщений: 269
|
||||||
Записать поверх биты из одного числа в другое26.07.2021, 19:04. Показов 6986. Ответов 73
Метки нет (Все метки)
Скопировать первые
end - start + 1 битов из A и записать поверх в B, начиная с позиции start по позицию end. Разрешается использовать только побитовые операцииПримеры работы функции:
0
|
||||||
| 26.07.2021, 19:04 | |
|
Ответы с готовыми решениями:
73
Как поменять биты из одного числа в другое на определённом отрезке, используя только битовые операции? Очень большие числа: узнать, есть ли остаток от деления одного числа на другое
|
|
|
||
| 29.07.2021, 12:45 | ||
|
Добавлено через 2 минуты SoBadDay, я на протяжении всей дискуссии пытаюсь навести вас на мысль, что где-то в начальных условиях закралась ошибка. Получается, что мы сейчас действуем не по правилам, описанным в задании, а просто пытаемся привести Foo к тем результатам, которые считаются "правильными".
0
|
||
|
67 / 42 / 30
Регистрация: 26.03.2019
Сообщений: 269
|
|
| 29.07.2021, 12:46 [ТС] | |
|
0
|
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|||
| 29.07.2021, 12:50 | |||
|
В шарпе целочисленные типы представлены в обратном коде, в котором -x = ~x + 1. В обратном коде по значению старшего бита можно определить знак числа, но это просто закономерность, следующая из кодирования — точно так же, как по значению младшего бита можно определить четность, но это не значит, что младший бит зарезервирован для указания четности.
0
|
|||
|
1151 / 743 / 483
Регистрация: 21.01.2014
Сообщений: 1,903
|
|
| 29.07.2021, 12:56 | |
|
kolorotur, занудства ради, не в обратном а в дополнительном.
1
|
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|
| 29.07.2021, 12:58 | |
|
0
|
|
|
67 / 42 / 30
Регистрация: 26.03.2019
Сообщений: 269
|
|||||||
| 29.07.2021, 12:59 [ТС] | |||||||
start или end может быть ошибка. В таком случае, можем изменить порядок ввода аргументов.
Foo(15, 554216104, 0, 31) = 554216111, хотя, судя по решению на листочке, должно быть 15Foo(554216104, 15, 0, 31) = 554216111
0
|
|||||||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|
| 29.07.2021, 13:37 | |
|
SoBadDay, так как задача-то поставлена в итоге?
Нужно end-start+1 битов, начиная со start, скопировать из А в В?
0
|
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|||||||
| 29.07.2021, 13:48 | |||||||
|
Добавлено через 6 минут Вот, чтобы решение соответствовало эталонным примерам из первого сообщения. Биты из Б копируются в А.
0
|
|||||||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||
| 29.07.2021, 13:50 | ||
|
Ну код выше при такой постановке должен работать.
0
|
||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||
| 29.07.2021, 14:14 | ||
|
Если копировать из Б в А, получая на выходе Р то: А: 0010101011112 = 65510 Б: 1010101010002 = 272810 Р: 0010101011112 = 68710 Биты, которые надо копировать из Б в А, выделены — с 3-го по 8-й, начиная с нуля.
0
|
||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||
| 29.07.2021, 14:22 | ||
|
Ну так в том примере хоть из А в Б, хоть из Б в А копировать — 2680 никак не получится
0
|
||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|
| 29.07.2021, 14:29 | |
|
wizard41, естественно.
Добавлено через 4 минуты Посмотрел остальные примеры: в каких-то случаях согласно примерам "правильно" копировать из А в Б, в каких-то — из Б в А... В общем, нужно либо определиться откуда что копировать, либо в каком порядке должны идти аргументы в методы. Благо в предложенном варианте это решается перестановкой местами А и Б в последней строчке метода.
0
|
|
|
|
|
| 29.07.2021, 14:42 | |
|
kolorotur, ТС противоречит сам себе. Вот в этом посте он показывает пример вставки со значениями 655, 2728, 3, 8.
И тут все логично с получившимся результатом. Но вот с Foo(A: 554216104, B: 15, start: 0, end: 31) = 15 он не замечает, что выборка 32 бит, начиная с 0-го из А равна А, соответственно вставив А в В он затрет изначальное В = 15, и В станет равным А. С чего он решил, что должно остаться 15?
0
|
|
|
1151 / 743 / 483
Регистрация: 21.01.2014
Сообщений: 1,903
|
||
| 29.07.2021, 14:46 | ||
|
kolorotur,
А: 001010001111 => 655 Б: 101010101000 => 2728 Р: 001101000111 => 839 Из А в Б А: 001010001111 => 655 Б: 101010101000 => 2728 Р: 101001111000 => 2680 Но если из А в Б, тогда из первого поста примеры не пройдут. В общем, да, где-то косяк.
0
|
||
| 29.07.2021, 14:46 | |
|
Помогаю со студенческими работами здесь
60
Из одного числа вычесть другое
MikroPascal for AVR - по "алиасам", биты одного байта(переменной) назначить на биты других байтов(портов, пинов) Копирование битов из одного числа в другое
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений.
. . .
|
21 мат мед. Планы на развитие модели здравоСохранения
anaschu 01.06.2026
AnyLogic: план развития симуляционной модели рабочего коллектива — динамический абсентеизм, реальные данные, три сценария сравнения
Продолжаю серию постов о дискретно-событийной модели рабочего. . .
|
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы
Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
|
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция
Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
|
|
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
|
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
|
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
|
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика
Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
|