Вопросы по теме 'bit-shift'

Решение уравнений с использованием операций битового сдвига в Maxima
У меня есть несколько сложных уравнений, которые я хотел бы оценить с помощью Maxima. На одном этапе процесса решения я разделил регистр на наиболее значимые и наименее значимые компоненты, и мне необходимо иметь возможность сделать это в Maxima....
552 просмотров
schedule 14.01.2024

Заменить младший значащий бит побитовыми операциями
Каков оптимальный способ замены наименее значимого бита байта предоставленным битом? Я знаю, как проверять и сравнивать последний бит (используя, например, функцию posix ffs()), но я хочу знать, есть ли решения с лучшей производительностью, не...
9728 просмотров

Получить 30-й бит параметра lParam в сообщении WM_KEYDOWN
Мне нужно получить 30-й бит параметра lParam, переданного с сообщением WM_KEYDOWN. Этот бит, как написано здесь , позволяет мне чтобы узнать, была ли клавиша нажата раньше. Подходит ли этот код для его получения? (lParam >> 30) & 1
1430 просмотров
schedule 25.10.2022

Правильно ли я извлекаю эти поля, используя побитовый сдвиг? (тег, индекс, смещение)
Я создаю эмулятор кэша ЦП на C. Я надеялся, что вы скажете мне, правильно ли я извлекаю эти поля: 32-битный адрес должен быть разбит следующим образом: +---------------------------------------------------+ | tag (20 bits) | index (10 bits) |...
2803 просмотров
schedule 11.10.2022

Как правильно сдвинуть значения в eax?
Я использую 32-битный x86. Проблема в том, что я не могу сдвинуть биты влево. Я хочу каждый раз читать по одному байту и помещать его в eax , но я испортил смещение. Я не могу переместить биты в более высокий порядок. Любая идея? myStr...
611 просмотров
schedule 13.12.2023

Установить определенный бит в массиве байтов
Я хочу знать, как установить определенный бит в 16-байтовом массиве (128 бит). Например ... если бы я хотел установить 9-й бит в массиве, я бы ожидал: {00, 80, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00} Если бы я хотел установить...
32725 просмотров
schedule 18.05.2024

Shift-влево «двойной» операнд
Следующая функция сдвигает влево операнд double : double shl(double x,unsigned long long n) { unsigned long long* p = (unsigned long long*)&x; *p += n << 52; return x; } Гарантируется ли корректная работа этой функции...
2310 просмотров
schedule 25.11.2023

Как получить последние 16 двоичных цифр отрицательного числа и связать их?
Я работаю с некоторыми побитовыми операторами, и я хочу извлечь последние 16 двоичных цифр числа и выполнить с ними операцию. Я в основном хочу увидеть отрицательный int, такой как 0xFFFFFFFF, а затем извлечь LSB FFFF и объединить их с 0 , чтобы я...
185 просмотров

Битовая маска для получения отдельных байтов
Я пытаюсь пройти через массив uint64_t ie: const uint64_t data[] = { 0x0000000000000000, 0x1111111111111111, 0x2322323232323232 } Из этого я хотел бы пройтись по каждому индексу в массиве и по каждому индексу, распечатать...
133 просмотров
schedule 18.01.2024

Беззнаковый сдвиг вправо на подписанных байтах, приводящий к ошибкам
Я испытываю странную операцию сдвига вправо без знака, дающую неправильные результаты при попытке выполнить их на жестко закодированных, а не жестко закодированных данных на Java 8. Я пытаюсь выполнить беззнаковый сдвиг вправо для подписанного...
87 просмотров
schedule 10.10.2023

Вычислить длинное максимальное значение со знаком в C, используя битовый сдвиг
Только вчера начал изучать C, и это вот-вот сведет меня с ума в день нового года... Попробуйте напечатать различные диапазоны int, используя операции сдвига битов. Все работает нормально, кроме подписанного длинного максимального/минимального...
2433 просмотров
schedule 08.09.2022

Предупреждение о компиляции VS: результат 32-битного сдвига неявно преобразуется в 64-битный
Visual Studio 2013 выдает раздражающее (и, казалось бы, неуместное) предупреждение о компиляции: #include <stdint.h> #define PRECISION 16 uint64_t hi = 0; for (uint8_t i = 0; i < PRECISION; i++) { if (some_condition) {...
4628 просмотров

Чтение двоичных файлов с использованием побитовых сдвигов и буферов в C++
Я пытаюсь прочитать двоичный файл и просто преобразовать данные в пригодные для использования целые числа без знака. Приведенный ниже код работает для 2-байтового чтения для определенных местоположений файлов и правильно печатает целое число без...
794 просмотров
schedule 07.08.2022

Проблема с битовой операцией (сдвиг, маскировка и т. д.)
Почему это выражение всегда дает -2 147 483 648 (11111111 11111111 11111111 11111111)? Я не понимаю. data[] представляет собой массив байтов, заполненный некоторыми значениями. (((int)data[29] & 0x00000001) << 31) |...
106 просмотров

Преобразуйте целое число в двоичное, а затем выполните сдвиг влево в python
У меня есть целочисленный ввод из текстового файла, который мне нужно преобразовать в двоичный и выполнить сдвиг влево на 12 позиций. Итак, если мое число 6. Это 110 в двоичном формате. Мой окончательный вывод должен быть 110000000000000, бит...
2841 просмотров
schedule 10.10.2022

Нулевой сдвиг вправо в питоне
function(e, t) { return e << t | e >>> 32 - t } У меня есть этот метод в js, я не очень понимаю работу сдвига. Я хочу написать это на питоне. Как я могу написать эквивалентный код на python, поскольку он не поддерживает...
1499 просмотров
schedule 18.04.2024

Обработка битов C++ компилируется без ошибок в моей системе, но компиляторы godbolt выдают предупреждения/ошибки
Изменить: ссылка на Godbolt, например здесь ! Итак, у меня есть этот пример, чтобы показать макросы, которые я сделал, и их вариант использования: #include <bitset> #include <iostream> #define bit_mask(size, offset) (~(~0 <<...
98 просмотров
schedule 06.05.2024

Правильный современный способ преобразования двух uint8_t в int16_t
Каков правильный современный способ C++ для преобразования двух uint8t в один int16_t , который удовлетворит лязг-аккуратность? a[0] << 8 | a[1] Если a[0] >= 128 , я хочу, чтобы результат зацикливался, что приводило к...
1684 просмотров
schedule 10.08.2022

Почему битовый сдвиг полезен?
Я понимаю, как работает битовый сдвиг и что компиляторы используют его для оптимизации времени выполнения, но я не понимаю математического значения битового сдвига. Что он делает, например, с числом в десятичной системе счисления? Как я могу...
78 просмотров
schedule 03.11.2022

Как распечатать двоичный код символов из входного файла?
Мне нужно иметь возможность взять текстовый файл: например. текст.txt a b c 0 1 2 и мне нужно напечатать двоичные значения этих символов. Вот что я написал до сих пор: #include "p01.h" int main(int argc, char **argv) { FILE...
42 просмотров
schedule 03.09.2022