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

Неожиданные результаты битового сдвига
Я инициализирую беззнаковое короткое целое с a = 0xff (все биты установлены). Затем я присваиваю b значению a>>7, что должно дать (0000 0001), и это так. Однако странно то, что когда я присваиваю c значению a‹‹7, это не эквивалентно (1000 0000). Я...
383 просмотров
schedule 24.04.2023

Сдвиг знакового бита в .NET
Я читаю биты из монохромного растрового изображения. Я сохраняю каждые 16 бит в short в обратном порядке. Если бит в растровом изображении черный, сохраните 1. Если белый, сохраните 0. Например: для растрового изображения: bbbw bbbw bbbw wwww...
7957 просмотров
schedule 13.04.2022

Сдвиг вправо PHP и отрицательный результат?
Я столкнулся с проблемой при преобразовании некоторого кода C в PHP, особенно при использовании оператора сдвига вправо. изменить: в следующих примерах бит = 0; Оригинальный код C: p->param->outBits[bytePtr++] |= codeword >> (9...
1666 просмотров
schedule 21.08.2022

Деление на произвольные числа с помощью операторов сдвига
Как можно разделить число n , например, на 24 , используя операторы сдвига и сложения? ( n % 24 == 0 )
1548 просмотров
schedule 30.05.2024

Эффективный способ манипулирования большими степенями двойки
Наиболее эффективный способ кодирования степеней двойки — сдвиг битов целых чисел. 1 << n дает мне 2^n Однако, если у меня есть число, которое больше, чем наибольшее значение, разрешенное в int или long , что я могу использовать для...
993 просмотров
schedule 04.06.2022

Нечетный сдвиг битов приводит к C#
Учитывая, что у меня есть значение uint 2402914, и я хотел бы захватить крайние левые 17 бит, где ошибка в моей логике, выполнив этот код: int testop = 0; byte[] myArray = BitConverter.GetBytes(2402914); fixed (byte* p = &myArray[0]) {...
470 просмотров
schedule 02.11.2022

Операция побитового сдвига .Net GetHashcode
Вчера я просматривал исходники .net и увидел несколько реализаций GetHashcode с чем-то вроде этого: (i1 << 5) + i ^ i2 Я понимаю, что делает код и почему. Я хочу знать, почему они использовали (i1 ‹‹ 5) + i вместо (i1 ‹‹ 5) - i....
562 просмотров
schedule 16.07.2022

сдвиг битов против умножения в PHP
У меня есть следующий код: <?php $start = 1; $timestart = microtime(1); for ($i = 0; $i < 1000000; $i++) { $result1 = $start * 4; } echo "\n"; echo microtime(1) - $timestart; echo "\n"; $timestart = microtime(1); for ($i = 0; $i <...
1322 просмотров
schedule 11.08.2022

C левый сдвиг на 64 бита не работает
У меня есть этот код на C (только для изучения): char x; uint64_t total = 0; for(x = 20; x < 30; x++){ total = (((((1 << x) * x) / 64) + 1) * sizeof(uint64_t)); printf("%d - %llu\n", x, total); }...
8280 просмотров
schedule 06.08.2022

Сдвиг влево Python (проблема со знаком)
В этом примере я получаю положительное число, но мне нужно выражение на Python, которое дает тот же результат, что и в Javascript. Как можно получить этот отрицательный результат в Python? Питон 2.7 mv = 1732584193 << 5...
481 просмотров
schedule 08.03.2023

Почему 3 758 096 384 ‹‹ 1 дает 768?
После прочтения отличного ответа на Руководство по смещению битов для начинающих? я протестировал претензия (так): 3,758,096,384 << 1 из консоли Chrome: 3,758,096,384 << 1 > 768 3,758,096,384 << 2 > 1536...
256 просмотров
schedule 29.11.2022

поведение undefined, когда левый операнд отрицательный
Несколько дней назад я сдал там онлайн-экзамен по Microsoft GD для стажировки. Я всегда изучал, что сдвиг влево отрицательного числа является неопределенным поведением, но в этой статье было почти 7 вопросов из 30, связанных с операторами сдвига, и...
1810 просмотров
schedule 12.04.2022

Преобразование уравнений в операции побитового сдвига
Есть ли какой-либо стандартный способ преобразования (любого) уравнения в операции побитового сдвига? Под этим я подразумеваю преобразование любой вещи, которая не является + или -, в битовые сдвиги, поэтому конечное уравнение содержит только...
251 просмотров
schedule 10.12.2022

Преобразование из 8 бит в 1 байт
У меня есть строка из 8 бит, и я хочу преобразовать ее в 1 байт. Я не уверен, почему моя функция не работает должным образом. У меня есть 8 бит, хранящихся в массиве из 8 беззнаковых символов. Это мой метод до сих пор: unsigned int...
12758 просмотров
schedule 13.05.2023

Расширенная константа сдвига знака в MIPS
Почему мы сдвигаем на 2 знаковую расширенную 16-битную константу в инструкции ветвления в MIPS? Я смущен этой идеей. Что хорошего это смещение дает расширенной знаковой 16-битной константе. Вот картинка: С уважением
12117 просмотров

PHP Проблема смещения левого бита на 32 бит
Я столкнулся с проблемой, когда мне нужно сделать ‹‹ на 32-битной машине, а число уже довольно большое. Если я перейду на это большое число, ответ будет неверным, как я могу это обойти? Я почти уверен, что ноутбук работает под управлением...
1549 просмотров
schedule 04.02.2023

Побитовые операции и сдвиги
У меня проблемы с пониманием того, как и почему этот код работает именно так. Мой партнер по этому заданию закончил эту часть, и я не могу связаться с ним, чтобы узнать, как и почему это работает. Я пробовал несколько разных вещей, чтобы понять это,...
12813 просмотров

Побайтовый вывод uint32_t
Я пытаюсь лучше понять побитовые операторы. У меня есть число типа uint32_t , которое я пытаюсь вывести побайтно. Код, который это делает: void printByteWise(uint32_t num) { printf("byte 1 = %u\n", (num & 0xFF000000)); printf("byte 2 =...
1990 просмотров
schedule 22.03.2023

Использование fwrite() с кодировками Хаффмана — битовый сдвиг и битовые манипуляции
Я делаю кодировку Хаффмана, и у меня возникают проблемы с пониманием того, как использовать fwrite() для записи наших кодировок в вывод. Скажем, у меня есть эти кодировки: Character A (65) gets an encoding of 101 Character B (66) gets an...
526 просмотров

Как преобразовать int в byte, а затем использовать оператор битового сдвига
Почему следующее не работает? Я привожу целое число к байту, затем сдвигаю биты на 7. Я не вижу здесь никаких проблем. Однако я получаю сообщение об ошибке "возможна потеря точности... требуется: байт; найдено: int" pixels — массив байтов, c...
343 просмотров
schedule 03.02.2023