|
127 / 105 / 27
Регистрация: 25.02.2010
Сообщений: 451
|
||||||||||||||||||||||||||
Разбить quint32 на 4 quint822.01.2015, 14:33. Показов 5259. Ответов 12
Метки нет (Все метки)
Доброго времени суток!
Не могу в битовые операции. Прошу вашей помощи. Есть функция, которая высчитывает контрольную сумму. Мне, для передачи результата контрольной суммы, нужно получить 4 байта. Что делаю: 1.
2.
3. далее разбиваю полученые байты
p.s. понимаю, что Qt тут не причем, но работаю в нем.
0
|
||||||||||||||||||||||||||
| 22.01.2015, 14:33 | |
|
Ответы с готовыми решениями:
12
Ошибка конвертирования from 'quint32 (*)() {aka unsigned int (*)()}' to 'quint32 {aka unsigned int}' QByteArray to quint8 Перевод из qreal в quint32 |
| 22.01.2015, 14:39 | |
|
Для вас есть специальный раздел форума С++ для начинающих
1
|
|
|
Каратель
|
|||||||
| 22.01.2015, 14:49 | |||||||
1
|
|||||||
|
161 / 45 / 10
Регистрация: 25.08.2014
Сообщений: 345
|
||||||||||||
| 22.01.2015, 15:14 | ||||||||||||
1
|
||||||||||||
|
127 / 105 / 27
Регистрация: 25.02.2010
Сообщений: 451
|
|||||||||||||||||||||||||||||||
| 22.01.2015, 22:33 [ТС] | |||||||||||||||||||||||||||||||
|
Спасибо! попробую!
Добавлено через 6 часов 23 минуты Jupiter, Sph, господа, вот что у меня получилось. Первый способ:
Добавлено через 34 минуты А если сделать вот так:
0
|
|||||||||||||||||||||||||||||||
|
205 / 165 / 41
Регистрация: 25.10.2013
Сообщений: 527
|
||
| 22.01.2015, 22:33 | ||
|
1
|
||
|
127 / 105 / 27
Регистрация: 25.02.2010
Сообщений: 451
|
|
| 22.01.2015, 22:56 [ТС] | |
|
Shtirliz72, догадываюсь, но не уверен что правильно.
По идее как, контрольная сумма = 2 байта. По протоколу. Для передачи, она шифруется. При шифровке, как Вы и сказали, используются по 4 бита. Причем 4 бита в обычном состоянии, превращаются в 8 бит в шифрованном состоянии. Итого, для передачи контрольной суммы используется уже 4 байта. Далее у меня есть функция, которая шифрует. Принимает (и отдает) она quint8. Вот я и занимался тем, что само число контрольной суммы, переводил сначала в два байта, а затем каждый еще в два байта. По сути да, я понимаю, что использовал 4 бита. Я просто не понимаю, почему приведенные выше способы со сдвигами не срабатывают. Запутанно как-то получилось... Добавлено через 5 минут В общем, я полагал, что компилятор сам, при необходимости, увеличит размерность. То есть, я начинал с обратного. Разбирал 4 байта шифрованной контрольной суммы. Получал в ответ 4 quint8. думая, что это 4 байта. Затем их соединял примерно таким способом: byte1 = n1 | (n2 << 4); И только сейчас и доходит, что тут как раз 4 бита сдвигал, чтоб с другой переменной соединить. Спасибо всем!
0
|
|
|
Поклонник Qt
|
|||||||
| 23.01.2015, 01:36 | |||||||
|
Dmitriy_M, ну да, вы правы...
Я изначально добивался результата: ![]()
1
|
|||||||
|
Поклонник Qt
|
|
| 23.01.2015, 02:43 | |
|
Кстати, всем кто незнаком с битовыми полями в C++, рекомендую ознакомиться с вот этой статьёй:
Расставим точки над структурами C/C++
1
|
|
|
127 / 105 / 27
Регистрация: 25.02.2010
Сообщений: 451
|
|
| 23.01.2015, 09:00 [ТС] | |
|
Dmitriy_M, такой протокол. Для передачи в канал, любой пакет надо кодировать методом Бауэра. Вот как это выглядит: https://www.cyberforum.ru/post7035449.html
Добавлено через 3 минуты То есть, возвращаясь к моему примеру: контрольная сумма: с0е7 кодированная сумма должна выглядеть так: 77 ЕЕ F0 3C В обратном порядке, плюс каждые полубайт кодируется отдельно (из таблицы).
0
|
|
| 23.01.2015, 09:00 | |
|
Помогаю со студенческими работами здесь
13
разбить класс Разбить на КЛАССЬІ
phpBB Разбить на страницы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|