0
ответов

Что быстрее в C ++? (2 * i + 1) или (i << 1 | 1)?

Я понимаю, что ответ, вероятно, зависит от оборудования, но мне любопытно, не хватало ли мне более общей интуиции? Я задал этот вопрос и дал ответ, теперь мне интересно, могу ли я ...
вопрос задан: 23 May 2017 11:47
0
ответов

Неожиданное поведение сдвига влево -[дубликат]

Возможный дубликат :Переполнение сдвига влево в GCC Рассмотрим следующую минимальную программу. #включить #включить int main (){ uint32 _t v = 1024; v &= (((...
вопрос задан: 23 May 2017 10:24
0
ответов

Инвертировать оператор побитового сдвига / степень двойки

В моей программе на C# есть следующее простое уравнение для преобразования числа в результирующее значение: Есть ли какая-то обратная операция, которая позволит мне перейти...
вопрос задан: 20 March 2017 20:00
0
ответов

сдвиг вправо для чисел нецелочисленных типов

У меня есть следующий код #include используя пространство имен std; int main () {float f = 56,34f; двойной d = 12,34 · 101; cout << (f >> 1.0) << endl; cout << (d >> 1.0) << endl; ...
вопрос задан: 8 November 2016 12:25
0
ответов

Преобразовать массив двойного значения в символьный буфер

Мне нужно отправить массив из 4 двойных значений в символьный буфер размером 8 байт, а также хотел бы извлечь значение из символьного массива в двойное значение для его использования. Я пытаюсь с ...
вопрос задан: 19 August 2016 23:32
0
ответов

Режим Emacs: как указать, что вещь в квадратных скобках должна быть цветной

Я пишу простой режим emacs. Как четко указать, что все вещи в квадратных скобках должны быть окрашены. Должен быть smth так: ((если вещь в квадратных скобках). font-lock-string-face)
вопрос задан: 3 August 2016 10:47
0
ответов

Что именно делает ~ при использовании в битовых операциях?

В чем разница между ~ i и INT_MAX ^ i Оба дают одинаковое нет. в двоичном формате, но когда мы печатаем нет. вывод отличается, как показано в приведенном ниже коде #include с использованием ...
вопрос задан: 10 July 2015 15:40
0
ответов

Почему операция сдвига влево вызывает неопределенное поведение, когда левый операнд имеет отрицательное значение?

В C операция побитового сдвига влево вызывает неопределенное поведение, когда левый операнд имеет отрицательное значение. Соответствующая цитата из ISO C99 (6.5.7 / 4) Результатом E1 << E2 является сдвиг E1 влево ...
вопрос задан: 3 July 2015 16:28
0
ответов

Определяет ли сдвиг отрицательных целых чисел влево и вправо?

Я знаю, что сдвиг вправо отрицательного типа со знаком зависит от реализации, но что, если я выполню сдвиг влево? Например: int i = -1; я << 1; Это четко определено? Я думаю, что стандарт ...
вопрос задан: 17 April 2015 14:09
0
ответов

Как извлечь определенные биты из числа в C?

Мне нужно извлечь определенную часть (количество битов) короткого типа данных в C. Например, у меня есть двоичное число 52504 как 11001101000 11000, и я хочу первые 6 ( FROM LSB --> MSB, т.е. 011000 десятичное число 24) биты ...
вопрос задан: 21 November 2014 13:26
0
ответов

Как работают операторы сдвига в Java? [дубликат]

Я пытаюсь понять операторов сдвига и не могу многого добиться. Когда я попытался выполнить приведенный ниже код System.out.println(Integer.toBinaryString(2 << 11)); System.out.println(Integer....
вопрос задан: 22 June 2014 11:04
0
ответов

Битовые сдвиги в C ++

Я не понимаю, почему это дает мне тот же ответ: long long a = 3265917058 >> 24; std :: cout << a << std :: endl; // 194 long long ip = 3265917058; long long b = ip >> 24; ...
вопрос задан: 2 October 2013 10:12
0
ответов

Буферы протокола Google: Зигзагообразное кодирование

Из «Подписанные типы» в кодировании - Буферы протокола - Код Google: Зигзагообразная кодировка отображает целые числа со знаком в беззнаковые целые числа, чтобы числа с малым абсолютным значением (например, -1) имели ...
вопрос задан: 2 July 2013 19:29
0
ответов

Язык ассемблера для C

Итак, у меня есть следующий код языка ассемблера, который мне нужно преобразовать в C. Я запутался в нескольких строках кода. Я понимаю, что это цикл for. Я добавил свои комментарии к каждой строке. ...
вопрос задан: 27 April 2013 16:10
0
ответов

круговой сдвиг массива влево на n позиций в java

Я пытаюсь сделать круговой сдвиг массива влево на n позиций, используя только один одномерный массив. Я могу сделать это в двух массивах, но я не понял, как это сделать, используя один. Пожалуйста, дайте ваш...
вопрос задан: 9 August 2012 22:55
0
ответов

Будет ли значение когда-либо равно 0 после многократного сдвига на «x <<= 1»?

Мне интересно, достигнет ли x когда-либо нуля в следующей программе. Пожалуйста, учтите :int main (){инт х = 1; в то время как (x ){ x <<= 1; } вернуть 0; } Если...
вопрос задан: 11 July 2012 21:18
0
ответов

В чем разница между оператором >> и оператором >>> в java?

Раньше я использовал оператор >> для сдвига вправо. Теперь я просто заменил его на >>> и получил тот же результат. Так что я не могу понять, являются ли эти два фундаментально равными или нет.
вопрос задан: 8 July 2012 00:35
0
ответов

Бит -сдвигается с помощью Int64

Переменная Int64 должна быть сдвинута. Я разбираю псевдоматематические функции из файла базы данных. Переменные - это uint32 или int32, поэтому я поместил их в Int64, чтобы обрабатывать их одинаково без...
вопрос задан: 5 July 2012 11:48
0
ответов

Что говорит стандарт C о смещении большего количества битов, чем ширина типа?

Рассмотрим следующий код :int i = 3 << 65; Я ожидаю, что результат будет i==0, однако фактический результат равен i==6. Проведя некоторое тестирование, я обнаружил, что со следующим кодом :int i, s; инт...
вопрос задан: 30 June 2012 00:31
0
ответов

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

Я пишу код для очень ограниченной системы, где оператор мода работает очень медленно. В моем коде по модулю нужно использовать около 180 раз в секунду, и я полагал, что убираю его как можно чаще...
вопрос задан: 18 June 2012 02:13
0
ответов

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

Как битовые сдвиги реализуются на аппаратном уровне, когда число, на которое нужно сдвинуть, неизвестно? Я не могу себе представить, что будет отдельная схема для каждого числа, на которое вы можете смещаться (это было бы 64 ...
вопрос задан: 7 June 2012 13:15
0
ответов

Разница между ~(x-1) и ~x+1, когда x=0x80000000

Я использую язык C. Тип x и n — int. У меня есть один строковый код следующим образом: printf("x=%x,n=%d,first=%x,second=%x\n",x,n,((~(x+0xffffffff))>>n) ,((~x+1)>>n)); Он показывает...
вопрос задан: 4 June 2012 13:52
0
ответов

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

Я искал самый быстрый метод для вычисления квадратного корня (целого числа) числа (целого числа). Я наткнулся на это решение в Википедии, которое находит квадратный корень числа (если это идеальное...
вопрос задан: 2 June 2012 21:47
0
ответов

Какова цель побитового сдвига значения int на ноль?

Глядя на исходный код класса java.nio.DirectByteBuffer, я нашел это: if ((length << 0) > Bits.JNI_COPY_TO_ARRAY_THRESHOLD) .... Какова цель сдвига длины на ноль бит?. ..
вопрос задан: 11 May 2012 14:23
0
ответов

Является ли сдвиг более 32 битов целого числа uint64 _t на машине x86 неопределенным поведением?

Изучив трудный путь, я попытался сдвинуть влево длинное длинное и uint64 _t до более чем 32 бит на машине x86, в результате 0. Я смутно помню, что где-то читал, чем на 32-битной машине сдвиг..
вопрос задан: 8 May 2012 13:18
0
ответов

Стандарт C на отрицательном нуле ( 1 дополнение и величина со знаком)

Все эти функции дают ожидаемый результат на моей машине. Все ли они работают на других платформах? В частности, если x имеет битовое представление 0xffffffff на машинах с дополнением 1 или ...
вопрос задан: 4 May 2012 23:21
0
ответов

Битовый сдвиг, когда нет … оператора битового сдвига

Я должен реализовать контрольную сумму (CRC16 CCITT )для проверки содержимого файла. Контрольную сумму довольно просто реализовать на C или Java благодаря операторам << и >> и множеству примеров...
вопрос задан: 30 April 2012 06:10
0
ответов

Ассемблер LC3 Побитовый сдвиг вправо

Что мне нужно сделать, это реализовать как побитовый сдвиг влево, так и побитовый сдвиг вправо с использованием ассемблера LC-3. В принципе, каждый бит должен быть перемещен на один пробел в направлении сдвига, и ноль...
вопрос задан: 9 April 2012 18:22
0
ответов

C сдвиг влево на 64 бита не работает

У меня есть этот код на C (только для изучения): char x; uint64_t всего = 0; for(x = 20; x < 30; x++){ total = (((((1 << x) * x) / 64) + 1) * sizeof (uint64_t)); ...
вопрос задан: 6 April 2012 19:06