Как я могу преобразовать массив данных 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

Другие вопросы по тегам