关于二进制转换问题!!求解释!!!
#include<iostream.h>#include<stdio.h>
void printb(int,int);
int main()
{
int x;
cout<<"请输入X:";
cin>>x;
printb(x,sizeof(int)*8);/*x:整数 sizeof(int):int型在内存中所占的字节数sizeof(int)*8:int型对应的位数*/
putchar('\n');
return 0;
}
void printb(int x,int n)
{
if(n>0)
{
putchar('0'+((unsigned)(x&(1<<(n-1)))>>(n-1)));
printb(x,n-1);//递归调用,输出x的后n-1位
}
}
putchar('0'+((unsigned)(x&(1<<(n-1)))>>(n-1)));这句不知道什么意思,求解释。。。。