Вопросы по теме 'bit-shift'
Решение уравнений с использованием операций битового сдвига в Maxima
У меня есть несколько сложных уравнений, которые я хотел бы оценить с помощью Maxima.
На одном этапе процесса решения я разделил регистр на наиболее значимые и наименее значимые компоненты, и мне необходимо иметь возможность сделать это в Maxima....
552 просмотров
schedule
14.01.2024
Заменить младший значащий бит побитовыми операциями
Каков оптимальный способ замены наименее значимого бита байта предоставленным битом?
Я знаю, как проверять и сравнивать последний бит (используя, например, функцию posix ffs()), но я хочу знать, есть ли решения с лучшей производительностью, не...
9728 просмотров
schedule
07.04.2024
Получить 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 просмотров
schedule
15.11.2023
Битовая маска для получения отдельных байтов
Я пытаюсь пройти через массив 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 просмотров
schedule
08.01.2024
Чтение двоичных файлов с использованием побитовых сдвигов и буферов в C++
Я пытаюсь прочитать двоичный файл и просто преобразовать данные в пригодные для использования целые числа без знака. Приведенный ниже код работает для 2-байтового чтения для определенных местоположений файлов и правильно печатает целое число без...
794 просмотров
schedule
07.08.2022
Проблема с битовой операцией (сдвиг, маскировка и т. д.)
Почему это выражение всегда дает -2 147 483 648 (11111111 11111111 11111111 11111111)? Я не понимаю. data[] представляет собой массив байтов, заполненный некоторыми значениями.
(((int)data[29] & 0x00000001) << 31) |...
106 просмотров
schedule
06.04.2024
Преобразуйте целое число в двоичное, а затем выполните сдвиг влево в 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