一个简单的有关问题:像这样的16进制数怎么运算得到

一个简单的问题:像这样的16进制数如何运算得到?
本帖最后由 alibaren 于 2014-11-24 04:34:32 编辑

下列两个整数(用16进制表示) 如何通过某种运算一次性得到右边的数:

0X2212BE72   ====>0X212BE72
0X1312BE8D   ====>0X312BE8D

------解决思路----------------------
我理解是要把最高4位清0,保留其他28位。
#include <stdio.h>

int main()
{
  int n = 0X2212BE72;
  printf("0X%X\n", n & 0xFFFFFFF);
  n = 0X1312BE8D;
  n &= 0xFFFFFFF;
  printf("0X%X\n", n);
  return 0;
}

------解决思路----------------------
关于位运算:
http://blog.****.net/liuzuyi200/article/details/11874345
http://blog.****.net/hguisu/article/details/7892596
------解决思路----------------------
0X2212BE72   ====>0X212BE72           0X2212BE72 & 0x0FFFFFFF
0X1312BE8D   ====>0X312BE8D          0X1312BE8D & 0x0FFFFFFF