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

How can I convert List<int>data array to something that I could use for bitmasking?

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

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

我假设它的意思是 1100(二进制)? 我怎样才能将它([0, 0, -1, -1])转换成我可以用于位掩码的东西?

位掩码可以用 int 数据类型(或其变体 int16/int32/int64)完成。如果您在 JSON 中将这些位掩码作为字符串获取,那么首先在 List 中获取它,下面的代码会将 List 转换为整数位掩码。然后可以将此整数 '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