Как я могу преобразовать массив данных List<int> во что-то, что я мог бы использовать для битовой маскировки?
У меня есть List<int>data
вот так (это JSON представление списка):
"data":[0, 0, -1, -1]
Я предполагаю, что это означает 1100(в двоичном коде)?? Как я могу конвертировать это ([0, 0, -1, -1]
) что-то, что я мог бы использовать для маскировки?
1 ответ
Решение
Битовая маскировка может быть выполнена с типом данных int (или его вариантами int16/int32/int64). Если вы получаете эти битовые маски в виде строки в JSON, то сначала получите этот код в списке, а код ниже преобразует список в битовую маску в целое число. Это целочисленное значение 'mask' может затем использоваться для маскировки битов с помощью &,| побитовые операторы.
int mask = 0;
List<int> data = new List<int>() { 1, 1, 0, 1 };
//Here you can iterate list from Left to Right or from Right to Left as per your need
foreach(int i in data)
mask = (mask << 1)|i;
//Bit mask in ready in mask integer
~ Nilesh