Описание тега bit-manipulation

Манипуляции с отдельными битами. Используемые операторы могут включать в себя побитовое И, ИЛИ, XOR, НЕ, сдвиг влево и сдвиг вправо.
2 ответа

Усечение Python до 32-битного

Как мне усечь мое возвращаемое значение до 32 бит? У меня есть следующий код, def rotate_left(input, shift): return hex((input << shift) | (input >> (32 - shift))) Я хотел бы, чтобы возвращаемое значение было "0x000000A" вместо "0xA00000…
06 ноя '14 в 04:34
3 ответа

Посмотрите на каждый бит в памяти в отдельности

После прочтения вопроса, как получить побитовые данные из целочисленного значения в c? Я вижу, что если я хочу посмотреть на каждый бит целым числом, я должен сдвинуть целое число вправо и замаскировать его. Но мне интересно, возможно ли получить до…
06 ноя '14 в 02:54
2 ответа

Поместите 7 символов в массив из 2 неподписанных коротких

У меня проблемы с выяснением того, как поместить 9 символов в массив из 4 беззнаковых шорт в программировании на c. Я знаю, что символ равен 1 байту, но используются только 7 бит, потому что в таблице ascii 0 ~ 127, поэтому мне нужно 7 * 9 = 63 бита…
18 апр '13 в 20:12
1 ответ

Оператор сравнения битхаков (меньше)

Мне известно, что большинство арифметических операций могут быть выполнены только с использованием побитовых операторов ( Добавить два целых числа, используя только побитовые операторы?, Умножение двух целых чисел, используя побитовые операторы, и т…
18 ноя '15 в 12:38
1 ответ

Как разрешить одно разрешение, а не другое, используя побитовую систему?

Я очень заинтересован в написании класса, который поможет мне с разными разрешениями для разных пользователей (например, класс ACL.) Я искал отличный метод, и битовая операция выпала! Я нашел хорошую статью Как написать систему разрешений, использую…
6 ответов

Побитовое смещение (<<) странное поведение

gcc побитовое смещение (&lt;&lt;) странное поведение. Вот мой код: #include &lt;stdio.h&gt; #include &lt;string.h&gt; void foo(int n){ printf("1&lt;&lt;32:%d\n", 1&lt;&lt;32); printf("1&lt;&lt;(32-n):%d\n", 1&lt;&lt;(32-n)); } int main(){ foo(0); } …
1 ответ

Преобразование короткого в двоичный код... Первые 8 цифр и последние 8 цифр меняются местами по некоторым причинам

Я пишу программу, которая преобразует символы, шорты и числа с плавающей запятой в двоичный файл. Я получил это работает на символы. На шортах, однако, он печатает первые 8 цифр после последних 8 цифр. 115 должно быть 0000 0000, 0111 0011, но моя пр…
28 янв '15 в 04:58
2 ответа

Для данного массива длины n найдите число подмножеств, где XOR подмножества равно заданному числу.

Учитывая массив, arrдлины nнайти, сколько подмножеств arr есть такие, что XOR(^) из этих подмножеств равно заданному числу, ans, у меня есть это dp подход, но есть ли способ улучшить его временную сложность. ans всегда меньше 1024. Вот ans это нет. …
1 ответ

Технический термин для упаковки битов

Под битовой упаковкой я имею ввиду int имеет 4 байта, и если мы храним 1 внутри intостальные биты будут потрачены впустую.Так что я буду упаковывать следующий тип, например shortценность 2, в int переменная (правым смещением влево). Как называется э…
29 сен '11 в 09:05
4 ответа

Добавление против производительности ORing

Я видел, как люди используют сложение, где побитовое ИЛИ было бы более концептуально подходящим, потому что они считают, что это быстрее. Это правда? Если да, все ли современные компиляторы знают этот трюк?
4 ответа

Узнайте, как часто х можно разделить на 2 без цикла в C

Я ищу способ узнать, как часто я могу разделить константу x на два (и не получить остаток) без использования циклов, рекурсии или логарифма. Поскольку это та же проблема, что и при поиске индекса наименьшего значимого ненулевого бита, я надеюсь, что…
17 фев '11 в 22:14
1 ответ

Как объединить две битовые переменные со знаком в одну битовую переменную со знаком?

Предположим, следующий код C++: #include &lt;iostream&gt; using namespace std; typedef struct { int a: 5; int b: 4; int c: 1; int d: 22; } example; int main() { example blah; blah.a = -5; // 11011 blah.b = -3; // 1101 int result = blah.a &lt;&lt; 4 …
10 дек '12 в 22:16
4 ответа

Как сгенерировать всю подпоследовательность четной длины из массива?

Я имею дело с проблемой, и эта проблема требует ответа на эту подпрограмму. Я знаю, как генерировать все подпоследовательности из массива, используя битовые манипуляции, но изо всех сил пытался генерировать подпоследовательности четной длины. Для пр…
1 ответ

Побитовое и против 0xfff - бессмысленно?

Вы ожидаете, что будет какая-либо разница в значениях a и b, учитывая этот код: s = "\x4f\x00\x00\x50\xae\x08\x00\x00" a = map(lambda x:x &amp; 0xffff, struct.unpack('HHHH', s)) b = map(lambda x:x, struct.unpack('HHHH', s)) в обоих случаях они закан…
19 сен '12 в 16:43
4 ответа

C# - Как использовать флаги перечисления определенным образом

То, что я пытаюсь сделать, это: [Flags] public enum Actions { Action1 = 0x01, Action2 = 0x02, Action3 = 0x04 } Для объекта установлен флаг действий, установленный в 7. Затем объект может выполнить любое из доступных действий. Но вот кикер. Объект мо…
02 авг '11 в 20:51
1 ответ

Реализация оператора левого смещения JavaScript в Clojure

Мне нужно сделать операцию левого сдвига, которая ведет себя точно так же, как JavaScript. Проблема в том, что это: a &lt;&lt; 16 ведет себя как Clojure "bit-shift-left", только если a <= 32767: // JS 32767 &lt;&lt; 16 // 2147418112 32768 &lt;&lt; 1…
14 июл '16 в 18:33
0 ответов

Эффективность побитовых операций над байтами в C#

Побитовые операторы в C# автоматически приводятся к int. Например: byte a = 0x0f; byte b = 0xf0; byte c = a &amp; b; Не компилируется и выдает следующую ошибку. Невозможно неявно преобразовать тип 'int' в 'byte'. Существует явное преобразование (вам…
4 ответа

Как конвертировать 32-битное целое в 64-битное значение в C

Я получаю ошибку компиляции в коде проекта, где ситуация выглядит следующим образом: typedef unsigned int U32bit; typedef unsigned long long U64bit; U32bit var; U64bit var2; var = function(); /* Function returns a 32-bit value, which is stored in va…
09 ноя '12 в 14:49
5 ответов

Хороший тест для встраиваемого инженера

Я расспрашиваю кандидатов в инженеры по встроенному программному обеспечению (в нашей компании мы используем в основном C, иногда C++). Я обычно задаю кандидату немного сложный вопрос. Я не упоминаю, что это может быть решено с небольшим поворотом, …
28 сен '11 в 06:57
3 ответа

Обращаем все биты в переменной с помощью PHP

Мне нужно прочитать двоичный файл в PHP, найти местоположение, обратить их биты и манипулировать результатом. в настоящее время мой код выглядит так: $src_file = "firmware/shapeshifter_v2.02.jic"; $offset = 983195; if ($src_handle = fopen($src_file,…
13 июл '17 в 10:10