C# 位掩码和-按偏移量和长度偏移

C# 位掩码和-按偏移量和长度偏移,c#,.net,bit-manipulation,bit-shift,C#,.net,Bit Manipulation,Bit Shift,我想创建一个位掩码,并按偏移量和长度创建位掩码偏移量 例如: offset=8和 length=4 位掩码应为:0xF00=3840(十进制为1111.0000.0000) 位偏移量应为:0x100=256(十进制) 我试过以下方法,但那是错误的: ulong mask = 0; for (int i = 0; i < offset; i++) { mask += (1 << 1) | 0; } ulong mask=0; 对于(int i=0;i

我想创建一个位掩码,并按偏移量和长度创建位掩码偏移量

例如:
offset=8
length=4

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

位偏移量应为:0x100=256(十进制)

我试过以下方法,但那是错误的:

ulong mask = 0;
for (int i = 0; i < offset; i++)
{
    mask += (1 << 1) | 0;
}
ulong mask=0;
对于(int i=0;i掩码+=(1一种方式可能类似于:

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

一种方法可能是:

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

偏移量定义第一个
1
开始的时间和长度是
1
的数字直到
0
还是什么?偏移量定义第一个
1
开始的时间和长度是
1
的数字直到
0
还是什么?