C#获取32位uint的最后10位

Jay*_*Jay -2 c# c#-4.0

我想要获得32位整数的最后10位,

基本上我所做的就是取一个数字并将其塞进前22位,我可以很好地提取出这个数字

int test = Convert.ToInt32(uIActivityId >> nMethodBits); //method bits == 10 so this just pushes the last ten bits off the range
Run Code Online (Sandbox Code Playgroud)

测试结果是我放在第一位的数字.

但是现在我很难过.所以我对你们的问题是.如何获得32位整数的最后十位?

Cod*_*aos 8

首先创建一个掩码,对于那些你想要的位有一个1位,对你不感兴趣的那个有一个0位.然后使用二进制&只保留相关的位.

const uint mask = (1 << 10) - 1; // 0x3FF
uint last10 = input & mask;
Run Code Online (Sandbox Code Playgroud)