public static class BitHelper
{
public static byte[] BoolAryToBits(bool[] bools)
{
if (bools == null)
{
Debug.LogError("get null? ");
return null;
}
int len = bools.Length >> 3;
if (bools.Length % 8 != 0)
{
len++;
}
byte[] result = new byte[len];
for (int i = 0; i < bools.Length; i++)
{
bool setTrue = bools[i];
if (((i >> 3) < result.Length) && setTrue)
{
result[i >> 3] |= (byte)(1 << (i & 7));//一個bit可以為0或1足夠判斷了
}
}
return result;
}
}
搜尋此網誌
2022年1月17日 星期一
Bit Flag C#
連續的bool array 可以改成連續的 bit 來儲存 可以壓縮 8倍 記憶體
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言