Как я могу преобразовать массив данных List <int>в то, что я мог бы использовать для битовой маскировки? - PullRequest
0 голосов
/ 21 декабря 2018

У меня есть List<int>data как это (это JSON представление списка):

     "data":[0, 0, -1, -1]

Я предполагаю, что это означает 1100 (в двоичном виде) ??Как я могу преобразовать это ([0, 0, -1, -1]) во что-то, что я мог бы использовать для битовой маскировки?

1 Ответ

0 голосов
/ 21 декабря 2018

Битовая маскировка может быть выполнена с типом данных 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

...