putchar('0'+((unsigned)(x&(1<<(n-1)))>>(n-1))); /*输出第N位*/

来源:百度知道 编辑:UC知道 时间:2024/09/21 13:52:17
这条语句是输出十进制x的第N位

但是是怎么样输出的呢,希望能具体讲讲

谢谢了

应该是输出二进制x的第n位

换一种形式写出来
int t=1<<(n-1);//把1左移到n位上,比如n=3,t=100(二进制)
t=x&t;//进行位与操作,就是提取x的第n位
t>>(n-1)//把x第n位右移到最右边
putchar('0'+t);//输出t