.编写一个程序,输出一个无符号整型变量值的二进制形式。下面是一段可以实现逐位输出功能的语句,请理解后应用到自己的程序中。
unsigned int a,b,n,mode;
scanf("%u",&a);
n=16; b=a; mode=0x8000;
printf("%u in binary format is:",a);
while(n>0) { / * 表示在条件满足,即n>0的时候循环执行{}内的4条语句 */
printf("%d",b/mode);
b=b%mode;
mode=mode/2;
n=n-1;
}
你提供的代码是不理解,还是要形成一个可执行程序啊?为啥提供的无符号整型是个16位的,哪一年写出来的代码啊?
0x8000就是二进制最高位是1,相当于2的15次方,输入的b值除以它,就是b的最高位,然后循环中将mode除以2 ,就是逐步变成2的14次方、2的13次方,并且b求余2就是去掉最高位后剩余部分分别除以mode,得到第14位,13位....,知道n变为0,得到最后的第0位。从而输出二进制值