%u 表示无符号
按位与运算符通常与一个称“屏蔽字”(mask)的操作数一起使用,当屏蔽字某位设置为1时,用来选择某位,如为0,则用来隐藏某位,设字长为n位,下面的程序中,DisplayMask设置为1<<(n-1),左移运算符将displayMask的最左位置为1,其他位置为0,这样语句:
putchar(value&displayMask?'1':'0');
可显式value的最高位,要显示次高位,可做运算displayMask>>1使displayMask的次高位为1,其他各位为0,再执行语句
putchar(value&displayMask?'1':'0');
可显示value的次高位,按同样的道理可显示其他各位
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
void DisplayBits(unsigned value);
int main(void)
{
unsigned value;
char select;
do{
printf("\n输入无符号数");
scanf("%u",&value);
printf("二进制显示:");
DisplayBits(value);
printf("\n是否继续(Y/N))");
do
{
select=getchar();
select=tolower(select);
}
while(select!='y'&&select!='n');
}
while(select=='y');
system("PAUSE");
return 0;
}
void DisplayBits(unsigned value)
{
unsigned displayMask;
unsigned n;
int i;
n=sizeof(unsigned)*8;
displayMask=1<<(n-1);
for(i=0;i<n;i++)
{
putchar(value&displayMask?'1':'0');
displayMask=displayMask>>1;
}
system("PAUSE");
}
%u 表示无符号
按位与运算符通常与一个称“屏蔽字”(mask)的操作数一起使用,当屏蔽字某位设置为 1时,用来选择某位,如为0,则用来隐藏某位,设字长为n位,下面的程序中,DisplayMask设置为1<<(n-1),左移运算符将 displayMask的最左位置为1,其他位置为0,这样语句:
putchar(value&displayMask?'1':'0');
可显式value的最高位,要显示次高位,可做运算displayMask>>1使displayMask的次高位为1,其他各位为0,再执行语句
putchar(value&displayMask?'1':'0');
可显示value的次高位,按同样的道理可显示其他各位
注意:1是&符号不是&&符号
2是移动位置要赋值