//当k为2的幂时,则y等于x的p个最低位数字。
int INT_BIT_SIZE = 32;//int由32bit组成
int x = 100;
int p = 5;
int k = (int)Math.Pow(2, p);
int y = x % k;
Console.WriteLine("y={0}", y);
//验证
int offset = INT_BIT_SIZE - p;
x = Math.Abs((x << offset) >> offset);//保留最后p位数字,求绝对值是为了忽略符号位。
Console.WriteLine("x={0}", x);
Console.Read();
//输出结果 y=4 x=4