我想创建一个位掩码和偏移量和长度的位掩码。
例如:
offset = 8
和
length = 4
位掩码应为:0xF00 = 3840十进制(1111.0000.0000)
并且bitoffset应为:0x100 =十进制的256
我尝试了以下内容,但这是错误的:
ulong mask = 0;
for (int i = 0; i < offset; i++)
{
mask += (1 << 1) | 0;
}
我该怎么做?
答案 0 :(得分:4)
一种方式可能是:
ulong mask = ((1 << length) - 1) << offset;
我不清楚为什么你甚至想要bitoffset
值,但这应该只是改变你的offset
值,对吗? E.g:
ulong bitoffset = 1 << offset;