![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() |
18192123 |
![]()
Сообщение
#1
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
Здравствуйте!
Скажите пожалуйста, как произвести XOR между двумя числами типа __int64, если отксорить требуется определённое число разрядов? например, 0xB5F2A8D63D2F0FB и 0x74726571, т.е каждый из разрядов из последнего числа нужно отксорить с соответствующими из 1-го..как только 2-е число заканчивается, XOR прекращается. |
![]() ![]() |
Lapp |
![]()
Сообщение
#2
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
каждый из разрядов из последнего числа нужно отксорить с соответствующими из 1-го..как только 2-е число заканчивается, XOR прекращается. Что значит "прекращается"? Это значит, что остальные (верхние) разряды результата - нули? или такие же, как в первом? или единицы? Определи операцию корректно. Просто "прекратить" невозможно. Результат должен быть чем-то заполнен до конца. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
18192123 |
![]()
Сообщение
#3
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
|
Lapp |
![]()
Сообщение
#4
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Почему должен? Потому что количество разрядов фиксировано (и равно в данном случае 64). Если ты говоришь про значащие разряды, то поведай об этом миру Мне как раз и нужно, чтобы в результате осталось столько разрядов, сколько было во 2-м числе. ![]() Ты сказала, что делать с нижними разрядами (XOR). С верхними осталось непонятным. Что означает "прекратить"? Прекратить XOR нельзя, он выполняется за один такт. Ты, по всей видимости, подразумеваешь модель, в которой операция (XOR) выполняется побитно, начиная с младшего разряда. Тогда "прекратить" может означать: 1. оставить как в первом операнде (в твоем примере - 0xB5F2A8D); 2. оставить как во втором операнде (нули). На будущее имей в виду, что если ты оперируешь с чилами определенного формата, то и оба операнда, и результат должны быть этого формата. И если верхние биты присутствуют, то надо их так или иначе определять. И даже если их значение тебе неважно (может быть любым), то так и скажи - это и будет определением. Ничего не сказать - нельзя. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
![]() ![]() |
![]() |
Текстовая версия | 21.06.2025 10:33 |