掩码应用实例

一、什么是掩码

如果要对一个整数中的某些位进行操作,可以用掩码(Mask)。比如掩码0x0000ff00表示对一个32位整数的8~15位进行操作。

二、掩码应用实例

此例记录处理QQ围棋wgs棋谱积分信息时掩码的运用。由于积分信息是要算补码的,负积分求反码时,由于int可能是4个字节,即32位,单字节的ff取反后为ffffff00,不是希望的结果,这里只希望取后8位。

如积分信息:fe fe ff ff,倒序排列,求补码是10110,换算为积分是-272。设置掩码为 0x000000ff下面是用掩码和不用掩码取反的对比:

显然,如果不用掩码,得出的结果会非常的大。下面是代码

 

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注