cpp
#include <stdio.h>
int main()
{
int i,j,bit, b[16];
unsigned int n,m,mask;
mask=0x8000; /* 最高位为1,其余位为0 */
n=1689;
printf("binary of %d is:",n);
for(i=0; i<16; i++)
{
bit=(mask & n) ? 1:0;
printf("%1d", bit);
if (i==7) printf("--");
b[i]=(mask & n) ? 1:0;
mask = mask>>1; /* 右移一位,得到下一个屏蔽字 */
}
m=0;
for(i=0; i<16; i++) //重新得到n的值1689保存于m中
{
j=15-i;
if(b[i]!=0)
m += b[i]<<j;
}
printf(" m is: %d",m);
return 0;
}
运行结果:
binary of 1689 is:00000110--10011001 m is: 1689