Вопросы по теме 'bit-shift'
Битовые операторы для добавления двух беззнаковых символов в С++
Если у меня есть две вещи, которые являются шестнадцатеричными, могу ли я кто-нибудь добавить их двоичные файлы вместе, чтобы получить значение?
В С++, скажем, у меня есть
unsigned char t = 0xc2; // 11000010
unsigned char q = 0xa3; //...
4328 просмотров
schedule
06.10.2022
Битовый сдвиг влево
Допустим, я хочу дважды сдвинуть бит i влево и сохранить значение в f .
f = i << 2;
Это правильно? Как именно это сделать в C/C++?
15672 просмотров
schedule
12.11.2023
Как разобрать битовые поля из массива байтов в Java?
Мне была поставлена трудная задача по анализу некоторых входящих UDP-пакетов из источника в соответствующее представление Java. Кикер — это данные, содержащиеся в пакетах, не выровненные по байтам. Чтобы сделать протокол как можно более плотным,...
3813 просмотров
schedule
24.12.2022
Эффективный битовый сдвиг массива int?
Чтобы оказаться на одной странице, предположим, что sizeof(int)=4 и sizeof(long)=8.
Учитывая массив целых чисел, какой был бы эффективный метод логического битового сдвига массива влево или вправо?
Я рассматриваю вспомогательную переменную,...
9798 просмотров
schedule
05.08.2023
Должен ли я смещать биты, чтобы разделить на 2 в Java?
Возможные дубликаты: Сдвиг битов быстрее, чем умножение и деление в Java? .NET? Быстрый вопрос по оптимизации Java
Много лет назад в колледже я узнал, что сдвиг битов вправо на единицу выполняет то же самое, что и деление на два, но...
33313 просмотров
schedule
07.08.2023
Битовые сдвиги в С++
Я не понимаю, почему это дает мне тот же ответ:
long long a = 3265917058 >> 24;
std::cout << a << std::endl; //194
long long ip = 3265917058;
long long b = ip >> 24;
std::cout << b << std::endl; //194...
342 просмотров
schedule
24.07.2022
Неожиданный результат битового сдвига С# вправо
Я недооценил сложность оператора >> ; это не делает то, что я думал.
Я хочу сдвинуть вправо значение uint 6542454. Я думал, что это работает так:
val (is) == 11000111101010001110110
val >> 1 == 1100011110101000111011
val...
583 просмотров
schedule
02.04.2023
Действительно ли умножение и деление с использованием операторов сдвига в C быстрее?
Умножение и деление могут быть достигнуты с помощью битовых операторов, например
i*2 = i<<1
i*3 = (i<<1) + i;
i*10 = (i<<3) + (i<<1)
и так далее.
Действительно ли быстрее использовать, скажем,...
111599 просмотров
schedule
28.03.2024
Цель c: бинарные операции с целыми числами?
У меня 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_t) tile.x &...
1232 просмотров
schedule
07.04.2023
Расширение знака для литерала и переменной
Я работаю с gcc 4.4.5, и у меня есть некоторые трудности с пониманием оператора сдвига вправо для простых простых значений без знака...
Этот тест
ASSERT_EQ( 0u, (unsigned long)(0xffffffff) >> (4*8) );
проходит.
Этот тест...
285 просмотров
schedule
17.05.2024
Оператор сдвига Java
Рассмотрим следующий код Java:
byte a = -64;
System.out.println(a << 1);
Вывод этого кода -128
Я попытался выяснить, почему это вывод:
64 = 0 1000000 (старший бит — знаковый бит)
-64= 1 1000000 (формат дополнения Tow)...
6467 просмотров
schedule
16.12.2022
Сдвинуто на отрицательное число в java
У меня проблема с оператором сдвига в Java. Я использовал следующий код и не могу понять, как эта программа генерирует этот вывод. Пожалуйста, объясните мне, как эта программа генерирует этот вывод.
public class Operator {
public static void...
7559 просмотров
schedule
11.06.2022
Операторы Javascript ‹‹ и ››
Возможный дубликат: Что делают эти операторы? Что это за выражение в Java ( 1 ‹‹ 2) ?
Что делают операторы >> и ‹‹ в JavaScript?
Я никогда не видел их раньше и ломаю голову, пытаясь понять их.
Любая помощь приветствуется: D
131 просмотров
schedule
04.11.2023
Создан беззнаковый int на основе 8 шестнадцатеричных байтов
Я пытаюсь распечатать unsigned int в виде шестнадцатеричного числа, а не просто использовать %08X . Мне нужно сначала напечатать шестнадцатеричный код MSB и LSB для каждого байта с помощью MSB. Я получил это:
unsigned int num = 1234567890;...
321 просмотров
schedule
04.06.2024
Смущает неопределенное поведение оператора сдвига C ++ и обертка пространства шаблона
Меня смущает то, что я прочитал в разделе «Операторы сдвига» в статья о неопределенном поведении C ++ .
В архитектуре ARM операторы сдвига всегда ведут себя так, как если бы они выполнялись в 256-битном пространстве шаблона, независимо от...
1047 просмотров
schedule
29.03.2022
Есть ли более эффективный способ расширения char до uint64_t?
Я хочу раздуть unsigned char до uint64_t , повторив каждый бит 8 раз. Например.
char -> uint64_t
0x00 -> 0x00
0x01 -> 0xFF
0x02 -> 0xFF00
0x03 -> 0xFFFF
0xAA -> 0xFF00FF00FF00FF00
В настоящее время у меня есть следующая...
834 просмотров
schedule
10.12.2022
Оператор сдвига влево в C
Рассмотреть возможность:
#include <stdio.h>
#define macro(a) a=a<<4;
main()
{
int a = 0x59;
printf("%x", a);
printf("\n");
macro(a)
printf("%x", a);
}
Для приведенного выше кода я получаю следующий вывод:...
43103 просмотров
schedule
05.01.2023
Естественно выровненный адрес памяти
Мне нужно извлечь адрес памяти из существующего 64-битного значения, и этот адрес указывает на массив 4K, начальное значение:
0x000000030c486000
Нужный мне адрес хранится в битах 51:12, поэтому я извлекаю эти биты, используя:
address =...
4625 просмотров
schedule
04.02.2023
Битовый сдвиг в BCD
Я сдвигаю биты числа BCD влево или вправо, чтобы быстро умножить или разделить на 2. Вот быстрый пример сдвига влево:
void LShift(unsigned char *arg)
{
int i, carry=0, temp;
for(i=2;i>=0;i--)
{
temp=(arg[i]<<1)+carry;...
1088 просмотров
schedule
17.03.2024
Являются ли побитовые операторы быстрее, чем оператор + и -
См. ссылку .
Предполагается, что самый быстрый способ вычислить абсолютное значение числа — использовать (относительно сложный) побитовый оператор.
Я знаю, что побитовые операторы быстрее, чем деление и умножение. Но они даже быстрее, чем...
2531 просмотров
schedule
19.03.2023