在C语言中,可以通过调用如下的函数获取掩码
int creat_mask( int starting_bit, int ending_bit )
{
/*为保证进行逻辑移位而不是算术移位,将掩码声明为无符号类型*/
unsigned int mask = (unsigned)-1;
mask >>= INI_BITS - (starting_bit - ending_bit + 1 );
mask <<= ending_bit;
return mask;
}
关于函数中的第一行代码:
unsigned int mask = (unsigned)-1;
其中的(unsigend)是强制类型转换,将-1的补码(11111111)转化成无符号类型的整型进行存储。