问题:
你有一个32位的整数,它在低16位和高16位都含有信息。你需要方法去得到它的高字位值(前16位)和/或低字位值(后16位)。
解决方法:
要得到一个整数的高字位值,像下面显示的方法一样,只要在它和一个值之间执行一个与(AND)操作就可以了:




要得到低字位值,执行下面的代码:




这个方法可以简单地修改一下,以适应其他大小(比如说8位,16位,或64位)的整数类型;这个内容显示在下面的讨论小节中。
讨论:
要想确定一个数字的高字位值,使用下面的与操作符:



这个方法简单地和另一个高位都被设为1的数值进行与(AND)运算。这个方法的结果是在低位上都是0,而高位则不变。
要想确定一个数字的低字位值,使用下面的与操作符:



这个方法则是把低位的都设置为1;其结果是高位都是0,留下低位不变。
这里的方法只接受32位的整数。要想这个方法接受其他的数字类型,你可以简单地重载这个方法,去接受任何你想要的数字类型。比如,你想要获取一个16位数字的低或高字节,你可以使用和GetHighWord方法同样的结构:




GetLowWord方法被修改为:



