Bit-Shift – вопросы и ответы

95
голосов
2
ответа
У меня есть байтовая переменная: byte varB = (byte) -1; // binary view: 1111 1111 Я хочу увидеть два самых левых бита и сделать unsigned right shift из 6 цифр: varB = (byte) (varB >>> 6); ...
2 месяца, 4 недели назад user2602807
85
голосов
2
ответа
Я не могу понять вывод ниже кода. Это дает мне результат как -256 . char c = 0xFF; printf("%d\n",c<<8);
2 месяца, 4 недели назад SRP
80
голосов
4
ответа
a = 100000000 c = (2**(a-1))-1 b = (2<<(a-1))-1 m = 1000000007 print b%m print c%m Выход: 494499947 247249973 Я использую ** и < оператор в python, чтобы найти степени 2, поднятые до очень...
2 месяца, 4 недели назад Harshit
75
голосов
1
ответ
Вот моя проблема. У меня определена следующая структура struct idt_reg{ unsigned short limit; unsigned int base; }__attribute__((packed)); В моем коде я выполняю следующее присваивание unsigned sho...
2 месяца, 4 недели назад Micky
-4
голоса
4
ответа
У меня есть топ-10 список со счетом (наивысший выигрыш) и меткой времени. Временная метка используется в случае оценки привязки, и в этом случае выигрывает связанный балл с наименьшей отметкой врем...
3 месяца назад Sembiance
102
голоса
2
ответа
Я работаю над алгоритмом DES в Python. В одной из функций, а именно функции Fiestle, я должен использовать элементы XOR для получения cypher. Есть ли способ, которым я могу выполнить операцию перек...
3 месяца назад shubhamj
54
голоса
5
ответов
u_char ip_vhl; /* version << 4 | header length >> 2 */ Я не могу понять, как это делается? можете ли вы дать мне примеры того, как использовать этот байт, чтобы хранить эти 2 числа, зна...
3 месяца назад cap10ibrahim
67
голосов
2
ответа
У меня есть BASIC логичный вопрос о следующем фрагменте кода: 1 uint64_t RMTileKey(RMTile tile) 2 { 3 uint64_t zoom = (uint64_t) tile.zoom & 0xFFLL; // 8bits, 256 levels 4 uint64_t x = (uint64_...
3 месяца назад Malte Onken
66
голосов
2
ответа
Я только что начал c-программирование, и у меня возникла проблема с заменой младшего значащего бита (LSB) на старший значащий бит (MSB). Например, первый ключ (32-битный ключ) - это 11110000, а пос...
3 месяца назад L0KiZ
67
голосов
1
ответ
Я пытался выяснить эту проблему в течение дня или около того, и я немного смущен тем, что происходит. По сути, у меня есть этот метод, чтобы преобразовать BGR Integer в RGB и создать из него цвет C...
3 месяца назад XaolingBao
75
голосов
1
ответ
У меня есть некоторые вопросы относительно смещения битов VB.NET. Я понимаю, что операторы << >> являются операторами сдвига бит в VB.NET. У меня есть двухбайтовое шестнадцатеричное зна...
3 месяца назад WizardsSleeve
54
голоса
1
ответ
Бит сдвинутый OptionSet... struct VerifiedOptions : OptionSet { let rawValue: Int static let facebook = VerifiedOptions(rawValue: 1 << 0) static let email = VerifiedOptions(rawValue: 1 <&l...
3 месяца назад Magoo
153
голоса
2
ответа
Меня интересует эта проблема Перемещает бит очевидным способом (из http://graphics.stanford.edu/~seander/bithacks.html ) unsigned short x; // Interleave bits of x and y, so that all of the unsigned...
3 месяца назад dato datuashvili
86
голосов
3
ответа
Java имеет 2 оператора бит-сдвига для сдвигов вправо: >> shifts right, and is dependant on the sign bit for the sign of the result >>> shifts right and shifts a zero into leftmost bi...
3 месяца назад Martin
167
голосов
3
ответа
В следующем выражении результат операции сдвига влево присваивается переменной i . int i; i = 7 << 32; printf("i = %d\n",i); В следующем выражении операция присваивания левого сдвига переноси...
3 месяца назад user4910881
75
голосов
1
ответ
Я возился и замечал различия, которые я не понимаю между Java и Perl, когда я смещал бит -1. Я думал, что целые числа хранятся в двоичном двоичном формате, поэтому, если есть 32 бита, -1 равно 11.....
3 месяца назад Kolibrie
-4
голоса
1
ответ
У меня есть карточная игра, в которой мне нужно отображать значение карты после того, как я перетасовываю. Я показываю значение карты, используя значения (x >> 1)& 0xf где x итерации по с...
3 месяца назад user1625271
163
голоса
1
ответ
От "Подписанные типы" на Кодирование - Буферы протокола - Код Google : ZigZag-кодирование отображает целые числа со знаком в целые числа без знака, так что числа с малым абсолютным значением (напри...
3 месяца назад Thanatos
54
голоса
1
ответ
Поэтому я пытаюсь сбрасывать 2 байта из массива, который у меня есть, но иногда получаю хорошие значения, но не все время. Итак, вот пример. char buffer[2]; //current character buffer to store the ...
3 месяца назад swimmys
76
голосов
1
ответ
Может ли кто-нибудь объяснить, почему у меня есть другой вывод для двух побитовых операций в коде ниже? Согласно документации php по адресу http://php.net/manual/en/language.operators.bitwise.php ,...
3 месяца назад dn Fer
-4
голоса
2
ответа
Это код: char x=-1>>2; printf("%d",x); Даже если я сделаю x = -N>>2 он даст только 1 . x = -1 => 11111111 x= -1>>2 ==> 00111111 = 3F ?? Кроме того, даже если я сделаю int x ...
3 месяца назад Raulp
128
голосов
6
ответов
Какова цель использования операторов Shift вместо использования деления и умножения? Есть ли другие преимущества использования операторов сдвига? Где можно попытаться использовать оператор сдвига?
3 месяца назад Saravanan
55
голосов
2
ответа
Мне была дана сложная задача разбора некоторых входящих UDP-пакетов из источника в соответствующее представление Java. Кикер - это данные, хранящиеся в пакетах, не выровнены по байтам. Чтобы сделат...
3 месяца назад Jason Nichols
106
голосов
1
ответ
Я работаю над кодом python, который читает один байт в момент времени из последовательного и сохраняет его в списке. Затем мне нужно объединить два байта для получения длины полезной нагрузки. Для ...
3 месяца назад Federico
100
голосов
2
ответа
Я реализовал Right Shifter (32 бит) с использованием 5 этапов мультиплексоров (Shift1/2/4/8/16). мой вопрос в том, как я могу расширить свою реализацию для реализации Left Shifter с минимальным доп...
3 месяца назад AMiNAsFour
66
голосов
1
ответ
Я долгое время понимал, как программисты используют преимущество быстрого двоичного представления данных в массивах С#, но я просто не понимаю. например, если у меня есть 2 массива A и B для хранен...
3 месяца назад ajaxi
76
голосов
1
ответ
Мне нужна помощь, интерпретирующая формулу. Это из документации маяка, с которым я экспериментирую. Я написал это в Swift, но я не могу заставить его работать. Независимо от значений, температурная...
3 месяца назад Jsmlind
101
голос
1
ответ
Я работаю над Tic-Tac-Toe AI и хочу найти последний ход (последний шаг оппонентов до текущего хода), используя длинный игровой движок. Каждое пространство представлено целым числом в одну цифру 1-9...
3 месяца назад Scott
55
голосов
3
ответа
Сегодня я провел несколько часов, охотясь за ошибкой, пока не нашел что-то я не понимаю. Это код, с которым я работал: unsigned long k,l,m; k = 1000; l = 33; m = k>>l; Он дает m=500 т.е. он, ...
3 месяца назад user647367
54
голоса
2
ответа
Я смотрю на этот код Java и пытаюсь понять его. Я понимаю все об этом, кроме немного сдвигающейся части. Я знаю, что приведенный ниже код, который использует сдвиг битов, строит некоторые значения ...
3 месяца назад cd491415
116
голосов
1
ответ
Итак, у меня есть следующий код языка ассемблера, который мне нужно преобразовать в C. Я запутался в нескольких строках кода. Я понимаю, что это цикл for . Я добавил свои комментарии к каждой строк...
3 месяца назад Catie
219
голосов
6
ответов
Apple иногда использует оператор Bitwise-Shift в своих определениях enum . Например, в файле CGDirectDisplay.h , который является частью Core Graphics: enum { kCGDisplayBeginConfigurationFlag = (1 ...
3 месяца назад Dave Gallagher
120
голосов
4
ответа
Если это возможно, мне интересно, нужно ли быстрее заменить одно умножение на бит-брейд, за которым следует целочисленное деление. Скажем, у меня есть int k, и я хочу умножить его на 2.25. Что быст...
3 месяца, 1 неделя назад user3697618
648
голосов
3
ответа
Учитывая коллегу как загадку, я не могу понять, как эта программа на самом деле компилируется и запускается. Что это за оператор >>>= и странный 1P1 литерал? Я тестировал в Clang и GCC. Пр...
3 месяца, 1 неделя назад CustomCalc
85
голосов
1
ответ
В настоящее время я пытаюсь написать бит синхронный последовательный протокол, который читает данные через NamedPipeClientStream. Затем эти данные должны постоянно контролироваться для символов син...
3 месяца, 1 неделя назад 56K
77
голосов
1
ответ
Я использую короткий (и я должен использовать короткий для задания, иначе я бы просто использовал int) для сканирования в значении от 0 до 31, а затем с использованием единственного целого для хран...
3 месяца, 1 неделя назад nohalon
95
голосов
8
ответов
Разница между целым умножением (временно забывающим о делении) все еще в пользу сдвига, и если да, то насколько велика разница? Кажется, что такая оптимизация на низком уровне, даже если вы этого х...
3 месяца, 1 неделя назад Roman A. Taycher
-8
голосов
1
ответ
У меня есть приложение Windows Forms с полем ввода. Я разделяю пользовательский ввод и помещаю его в вектор, затем меняю его на удвоение. После этого я вызываю функцию, которая вычисляет логарифм, ...
3 месяца, 1 неделя назад MP0
66
голосов
4
ответа
У меня есть массив, который содержит список nibbles: {0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, ...} Я хочу объединить соседние куски в отдельные байты, перемещая верхний полубайт и конкатенируя его с ни...
3 месяца, 1 неделя назад user4910881
54
голоса
1
ответ
Мне нужно прочитать байт из.bin, но, начиная с определенного бита, например: Если у меня есть два байта: 01010111 10101100 Программа должна быть в состоянии читать из любого бита, допустим, начиная...
3 месяца, 1 неделя назад vdrg
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема