|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
14.03.2021, 15:39 | #1 |
Пользователь
Регистрация: 14.08.2019
Сообщений: 65
|
Как не занулять пустые биты в битовых операциях?
**Как не занулять пустыми битами в битовых операциях?**
Чтобы продемонстрировать это для себя, написал данный код. Но результат исполнения мне не совсем понятен. Код:
1234567890 ╥ 16640 1234567890 ╥ 1234584530 ╥ Объясните, пож., занулились ли старшие биты в третем по счету консольном выводе? И вообще, как правилнее продемонстрировать это? Последний раз редактировалось GrimHex; 14.03.2021 в 16:41. |
14.03.2021, 17:00 | #2 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
14.03.2021, 18:55 | #3 |
Пользователь
Регистрация: 14.08.2019
Сообщений: 65
|
Спасибо за ответ. Поставил единицы, так еще проще.
before: 1111111111 (0x423A35C7) after:16640 (0x00004100) //Запись с нулями, вычисленя значения не произошли. before: 1111111111 (0x423A35C7) after:1111127495 (0x423A75C7) //Запись без нулей, вычисления значений произошли. 75C7-35C7=4000 Разница: сначала - 4100, потом 4000. Именно поэтому написал что произошло вычисление значения. Нужно чтобы (одновременно): 1. Записываемое значение не вычислялось (арифметические преобразования) 2. Не записывались старшие ноли. Насколько это усложнит реализацию? Последний раз редактировалось GrimHex; 14.03.2021 в 19:05. |
15.03.2021, 07:33 | #4 |
фрилансер
Форумчанин
Регистрация: 11.10.2019
Сообщений: 962
|
так не бывает, выражение всегда вычисляется ) Иногда - на этапе компиляции
у меня такое ощущение, что тут нужны битовые поля но изначальная задача поставлена непонятно. Неизвестно, что автор хочет добиться |
15.03.2021, 22:23 | #5 | |
Пользователь
Регистрация: 14.08.2019
Сообщений: 65
|
Цитата:
О вводе-выводе, в пределах задачи, подробно говорить пока что преждевременно - для меня это уже следующий этап. Последний раз редактировалось GrimHex; 15.03.2021 в 23:05. |
|
15.03.2021, 23:33 | #6 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
Алексей1153 оказался прав. Почитайте про битовые поля. Опишите структуры с нужными полями для датаграмм.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
17.03.2021, 12:04 | #7 |
Пользователь
Регистрация: 14.08.2019
Сообщений: 65
|
Теперь с битовыми полями. А битовые операции все равно не получаются.
Вот что выдала консоль: Enter acceptor value: 1111111 Enter writing value: AAAAAA Enter offset value: 8 (Writing value is Long) (Offset value is Char ) AcceptorInput: 17895697 (0x01111111) WritingInput: AAAAAA (0x00AAAAAA) OffsetInput: 8 (0x00000008) New Acceptor value:CCCCCCCCEEEEEECC (0xCCCCCCCCEEEEEECC) OLd Acceptor value:1111111 (0x01111111) Код:
|
17.03.2021, 12:30 | #8 |
фрилансер
Форумчанин
Регистрация: 11.10.2019
Сообщений: 962
|
GrimHex, какой формат пакета? Явно неправильно используешь битовые поля. Почему базовый тип всё время разный то ?
|
17.03.2021, 12:51 | #9 | |
Пользователь
Регистрация: 14.08.2019
Сообщений: 65
|
unsigned long long
Цитата:
Еще есть временная переменная с исходным "unsigned long long AcceptorInput = 0;" Для смещения и записываемого значения тип данных не определен, поэтому работаю со всеми беззнаковыми. |
|
17.03.2021, 13:17 | #10 |
фрилансер
Форумчанин
Регистрация: 11.10.2019
Сообщений: 962
|
GrimHex, то есть, формата нет ещё? Ну хотя бы на словах - что должно быть в пакете
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
в переменной типа word (b15b14...b1b0) биты 0..4 содержат двоичный код ,который обозначим как А,биты 5..7-код,который обозначим ка | Юлия123456 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 3 | 07.06.2016 06:33 |
как разбить текст на биты......... | Xchel | Помощь студентам | 17 | 17.04.2016 22:05 |
Как получить средние биты 32х битного числа? | Larboss | Общие вопросы Delphi | 7 | 23.05.2013 10:05 |
Как перевести биты в мегабайты? | Юзер7 | Свободное общение | 7 | 19.06.2009 17:27 |
Как избавиться от зависания приложения при выполнении длительных операциях | Des | Общие вопросы Delphi | 15 | 30.04.2009 02:05 |