|
-23 / 0 / 2
Регистрация: 15.03.2013
Сообщений: 328
|
||||||
Битовые операции, найти ошибку в коде13.03.2014, 12:47. Показов 3011. Ответов 31
Метки нет (Все метки)
Написал немного коду с битовыми операциями, чтобы заменять биты, но почему то работает не так как хотелось. Комментарии все в коде. В HEX редакторе получаются в основном одни FF, т.е. байты заполненные единичками. Алгоритм должен быть обратным, но не выходит.
key это интовская переменная array это байтовый массив содержащих исходные данные (QByteArray array) itog это байтовый массив измененных данных
0
|
||||||
| 13.03.2014, 12:47 | |
|
Ответы с готовыми решениями:
31
Как представлять двоичные числа в обратном и дополнительном коде, используя битовые операции? Битовые операции (написать функцию для сброса в ноль двух битов с заданными номерами в коде символа) |
|
-23 / 0 / 2
Регистрация: 15.03.2013
Сообщений: 328
|
||
| 17.03.2014, 16:43 [ТС] | ||
|
Вот, как говорится, на бумаге:
имеем ключ допустим вида: 111000111000 это 3640 в десятички. Ключ одинаков при первом запуске и при втором!!! Далее, не буду всю решётку битовую переменной int расписывать, но один раз напишу, чтобы отпали подобные вопросы: 00000000000000000000111000111000 вот так ключ хранится. Хух ![]() 1^1^0^0 это операция исключающего ИЛИ 1го,2го, 4го, 5го разъряда(если смотреть с первого) 1)получили 0 (думаю таблица истинности не нужна) 2)перед свдигом ключа запоминаем нулевой бит(первый) он 0 3)ксорим этот 0 с первым битом файла(первым битом массива array) и записываем результат в первый бит itog. 4)записываем 0 полученый на шаге один, пишем в 11 разъряд, если нумеровать с нуля.(предварительно сдвину ключ на 1 разъряд вправо) далее шаги повторяются по циклу, пока не закончатся биты массива array. А назад, происходит точно также.. ключ тот же только на входе уже array == itog полученный на предыдущем этапе. Добавлено через 8 минут Alex5,
0
|
||
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
|
||||||
| 17.03.2014, 17:11 | ||||||
|
ты вообще читаешь что тебе пишут?
если вот так как это
0
|
||||||
|
-23 / 0 / 2
Регистрация: 15.03.2013
Сообщений: 328
|
||||
| 17.03.2014, 17:29 [ТС] | ||||
|
ValeryS, почему вы тыкаете??? тем более не по теме, тему читайте внимательно, пожалуйста, прежде чем показывать свою безтактность. Я выложил уже другой код в котором эту ошибку исправил
Добавлено через 3 минуты Добавлено через 7 минут даётся таблица истинности: 0 ^ 0 = 0 0 ^ 1 = 1 1 ^ 0 = 1 1 ^ 1 = 0 Далее, пример1 0 ^ 0 ^ 0 ^ 1 получим 1 независимо от последовательности. Это необходимо, но не достаточно. Далее, пример2 1 ^ 1 ^ 1 ^ 0 получим 1 Это необходимо, но не достаточно. В сумме пример 1 и 2 это необходимо и достаточно для получения единицы. А ноль будет, когда нулей и единиц поровну (для 4х битовой сетки). Это необходимо и достаточно. Вот откуда и берётся это условие. Я вам могу так сказать, в программировании не обязательно действия выполнять напрямую, иногда достаточно правильной интерпретации.
0
|
||||
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
|
|||
| 17.03.2014, 18:07 | |||
|
я отваливаю, не желаю участвовать
а это
0
|
|||
|
-23 / 0 / 2
Регистрация: 15.03.2013
Сообщений: 328
|
|
| 17.03.2014, 18:13 [ТС] | |
|
ValeryS, я не виноват, что он не может.. что вы от меня хотите? если 1 ^ 0 = 1 это не понятно, то это не ко мне, я не преподаватель. В этой теме не обсуждается таблица истинности XOR.
Могу только ссылкой помочь на литературу, где всё это описано: Литература C++ Буду рад, если помог.
0
|
|
|
1130 / 789 / 232
Регистрация: 12.04.2010
Сообщений: 2,012
|
||||||
| 17.03.2014, 18:14 | ||||||
Сообщение было отмечено танкист34 как решение
Решение
танкист34, вот пример. Возьмём key равным 10, array[] - массив из 4 элементов ( 1, 2, 3, 4 ).
Вот у меня что получается. Как видно на рис., работает. Исходный массив восстанавливается. А какой у Вас получается itog[] для key: 10, array[]: { 1, 2, 3, 4 } Может быть, причина не в MainWindow::sh(). Что будет, если вообще не использовать sh()?
1
|
||||||
|
-23 / 0 / 2
Регистрация: 15.03.2013
Сообщений: 328
|
|
| 17.03.2014, 18:22 [ТС] | |
|
Alex5, благодарю вас, буду пробывать, а на диалог с ValeryS, не обращайте внимание, он мне тычит на ошибку которую вы мне указали, её я устранил ещё вначале. (все люди ошибаются).
0
|
|
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
|
||
| 17.03.2014, 18:55 | ||
|
танкист34,
переведи вот эту фразу
0
|
||
|
-23 / 0 / 2
Регистрация: 15.03.2013
Сообщений: 328
|
|
| 17.03.2014, 19:03 [ТС] | |
|
ValeryS, пример я привёл выше, и ссылку на книжки дал, почитайте основы и поймёте. Больше я ничем помочь не могу, я считаю, что надо всегда исходить из основ, а не с конца начинать.
будете дальше тыкать, я вам отвечать не буду. Относитесь уважительно, также как и я к вам.
0
|
|
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
|
|
| 17.03.2014, 19:05 | |
|
танкист34, спасибо что просветил, но я уж как то со своими знаниями и Булевой алгеброй проживу
1^1^1^0=1 единиц больше чем нулей 1^0^0^0=1 единиц меньше чем нулей Все отваливаю
0
|
|
|
-23 / 0 / 2
Регистрация: 15.03.2013
Сообщений: 328
|
|||
| 17.03.2014, 19:12 [ТС] | |||
|
Добавлено через 1 минуту ValeryS, удачи, со знаниями булевой алгебры. Жаль что она вам не дала понимание основ. Книжки всё же советую почитать, пригодится. Добавлено через 3 минуты
0
|
|||
|
-23 / 0 / 2
Регистрация: 15.03.2013
Сообщений: 328
|
||||||
| 19.03.2014, 00:23 [ТС] | ||||||
|
Alex5, проверил без вызова sh, работает, значит ошибка где-то в sh
Добавлено через 36 минут Alex5, спасибо, получилось, ошибка была в инициализации переменной simv. Поменял на int simv = 0; //и возвращаемое значение функции побитово домножил на 0XFF.
0
|
||||||
| 19.03.2014, 00:23 | |
|
Битовые операции и операции смещения языка С Битовые операции Битовые операции Битовые операции Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности.
Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
|
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version
Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
|
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер
На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|