Вопросы с тегом «bit-manipulation»

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


9
Что такое операторы побитового сдвига (bit-shift) и как они работают?
Я пытался изучать C в свободное время, и другие языки (C #, Java и т. Д.) Имеют ту же концепцию (и часто те же операторы) ... Что мне интересно, на уровне ядра, что делает бит сдвига ( <<, >>, >>>) делать, какие проблемы она может помочь решить, и какие подводные …

30
Как посчитать количество установленных бит в 32-битном целом числе?
8 битов, представляющих число 7, выглядят так: 00000111 Три бита установлены. Какие существуют алгоритмы для определения количества установленных бит в 32-битном целом числе?

23
Что такое «Дополнение 2»?
Я в компьютерных системах и , конечно, были изо всех сил , в частности, с дополнением до двух . Я хочу понять это, но все, что я прочитал, не принесло мне картину. Я прочитал статью в Википедии и другие статьи, включая мой учебник . Поэтому я хотел начать эту вики- …

5
Извлечение битов с одним умножением
Я видел интересную технику, использованную в ответе на другой вопрос , и хотел бы понять ее немного лучше. Нам дано 64-разрядное целое число без знака, и нас интересуют следующие биты: 1.......2.......3.......4.......5.......6.......7.......8....... В частности, мы хотели бы переместить их в верхние восемь позиций, вот так: 12345678........................................................ Нас не волнует значение битов, …


10
Наиболее распространенные побитовые операции C # над перечислениями
На всю жизнь я не могу вспомнить, как устанавливать, удалять, переключать или тестировать немного в битовом поле. Либо я не уверен, либо я их перепутал, потому что они мне редко нужны. Так что было бы неплохо иметь "бит-шпаргалку". Например: flags = flags | FlagsEnum.Bit4; // Set bit 4. или if …


6
Использование побитового ИЛИ 0 для создания числа
Мой коллега наткнулся на метод для получения чисел с плавающей запятой с использованием побитового или: var a = 13.6 | 0; //a == 13 Мы говорили об этом и задавались вопросом несколько вещей. Как это работает? Наша теория заключалась в том, что использование такого оператора приводит число к целому числу, …

1
Что означает двойная тильда (~~) в Java?
Просматривая исходный код Guava, я наткнулся на следующий фрагмент кода (часть реализации hashCodeдля внутреннего класса CartesianSet): int adjust = size() - 1; for (int i = 0; i < axes.size(); i++) { adjust *= 31; adjust = ~~adjust; // in GWT, we have to deal with integer overflow carefully } …


25
Округление до следующей степени 2
Я хочу написать функцию, которая возвращает ближайшую следующую степень 2 числа. Например, если мой ввод 789, вывод должен быть 1024. Есть ли способ достичь этого без использования циклов, а только с помощью некоторых побитовых операторов?


9
C # int to byte []
Мне нужно преобразовать intв byte[]один из способов сделать это заключается в использовании BitConverter.GetBytes(). Но я не уверен, что это соответствует следующей спецификации: Целое число со знаком XDR - это 32-разрядное значение, которое кодирует целое число в диапазоне [-2147483648,2147483647]. Целое число представлено в двух дополнительных обозначениях. Самые старшие и младшие байты …
172 c#  .net  bit-manipulation  nfs 

11
~ x + ~ y == ~ (x + y) всегда ложно?
Этот код всегда оценивается как ложный? Обе переменные являются двумя знаковыми дополнениями. ~x + ~y == ~(x + y) Я чувствую, что должно быть какое-то число, которое удовлетворяет условиям. Я пытался проверить числа между, но так -5000и 5000не достиг равенства. Есть ли способ установить уравнение, чтобы найти решение для условия? …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.