Описание тега 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.) Я искал отличный метод, и битовая операция выпала! Я нашел хорошую статью Как написать систему разрешений, использую…
02 дек '14 в 20:31
6
ответов
Побитовое смещение (<<) странное поведение
gcc побитовое смещение (<<) странное поведение. Вот мой код: #include <stdio.h> #include <string.h> void foo(int n){ printf("1<<32:%d\n", 1<<32); printf("1<<(32-n):%d\n", 1<<(32-n)); } int main(){ foo(0); } …
02 июн '13 в 02:38
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 это нет. …
08 дек '15 в 05:34
1
ответ
Технический термин для упаковки битов
Под битовой упаковкой я имею ввиду int имеет 4 байта, и если мы храним 1 внутри intостальные биты будут потрачены впустую.Так что я буду упаковывать следующий тип, например shortценность 2, в int переменная (правым смещением влево). Как называется э…
29 сен '11 в 09:05
4
ответа
Добавление против производительности ORing
Я видел, как люди используют сложение, где побитовое ИЛИ было бы более концептуально подходящим, потому что они считают, что это быстрее. Это правда? Если да, все ли современные компиляторы знают этот трюк?
04 апр '11 в 01:23
4
ответа
Узнайте, как часто х можно разделить на 2 без цикла в C
Я ищу способ узнать, как часто я могу разделить константу x на два (и не получить остаток) без использования циклов, рекурсии или логарифма. Поскольку это та же проблема, что и при поиске индекса наименьшего значимого ненулевого бита, я надеюсь, что…
17 фев '11 в 22:14
1
ответ
Как объединить две битовые переменные со знаком в одну битовую переменную со знаком?
Предположим, следующий код C++: #include <iostream> 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 << 4 …
10 дек '12 в 22:16
4
ответа
Как сгенерировать всю подпоследовательность четной длины из массива?
Я имею дело с проблемой, и эта проблема требует ответа на эту подпрограмму. Я знаю, как генерировать все подпоследовательности из массива, используя битовые манипуляции, но изо всех сил пытался генерировать подпоследовательности четной длины. Для пр…
06 ноя '18 в 17:49
1
ответ
Побитовое и против 0xfff - бессмысленно?
Вы ожидаете, что будет какая-либо разница в значениях a и b, учитывая этот код: s = "\x4f\x00\x00\x50\xae\x08\x00\x00" a = map(lambda x:x & 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 << 16 ведет себя как Clojure "bit-shift-left", только если a <= 32767: // JS 32767 << 16 // 2147418112 32768 << 1…
14 июл '16 в 18:33
0
ответов
Эффективность побитовых операций над байтами в C#
Побитовые операторы в C# автоматически приводятся к int. Например: byte a = 0x0f; byte b = 0xf0; byte c = a & b; Не компилируется и выдает следующую ошибку. Невозможно неявно преобразовать тип 'int' в 'byte'. Существует явное преобразование (вам…
06 май '14 в 05:23
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