繁体   English   中英

使用StackExchange.Redis从Redis返回C#bitarray

[英]Returning a C# bitarray from Redis with StackExchange.Redis

我试图使用db.StringSetBit()获取先前在密钥上设置的位

目前我有以下内容:

byte[] bitLookup = db.StringGet(key);
BitArray barr = new BitArray(bitLookup);

我的问题是我似乎无法弄清楚返回比特的顺序,因为我得到奇怪的结果,其中位设置在完全错误的偏移中。

我终于搞清楚了。

迭代BitArray中的位,如果该位置位,则使用以下方法使用设置位的索引计算位位置:

private int keyFromBitIndex(int bitIdx)
{
    var upper = (((int)Math.Ceiling(bitIdx / 8d) * 8) - 1);
    var lower = (bitIdx - (int)(Math.Floor(bitIdx / 8d) * 8));
    return upper - lower;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM