如何将List <int>数据数组转换为可用于位掩码的内容?

时间:2018-12-21 03:10:34

标签: c# bit bitmask

我有一个List<int>data(它是列表的JSON表示形式):

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

我认为它的意思是1100(二进制)? 如何将([0, 0, -1, -1])转换为可用于位掩码的内容?

1 个答案:

答案 0 :(得分:2)

可以使用int数据类型(或其变体int16 / int32 / int64)完成位屏蔽。如果要在JSON中以字符串形式获取这些位掩码,则首先在List中获取该位掩码,下面的代码会将List转换为整数形式的位掩码。然后,可以使用&,|将该整数“掩码”值用于位掩码。按位运算符。

        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