位掩码和偏移量和长度偏移量

时间:2015-03-10 14:07:58

标签: c# .net bit-manipulation bit-shift

我想创建一个位掩码和偏移量和长度的位掩码。

例如: offset = 8length = 4

位掩码应为:0xF00 = 3840十进制(1111.0000.0000)

并且bitoffset应为:0x100 =十进制的256

我尝试了以下内容,但这是错误的:

ulong mask = 0;
for (int i = 0; i < offset; i++)
{
    mask += (1 << 1) | 0;
}

我该怎么做?

1 个答案:

答案 0 :(得分:4)

一种方式可能是:

ulong mask = ((1 << length) - 1) << offset;

我不清楚为什么你甚至想要bitoffset值,但这应该只是改变你的offset值,对吗? E.g:

ulong bitoffset = 1 << offset;