请解释两句C语言代码

来源:百度知道 编辑:UC知道 时间:2024/06/02 11:09:29
void TtoB(int n)
{
if (n)
{
TtoB(n >> 1);//??
printf("%d", n & 1);//??
}
}

void TtoB(int n)
{
if (n)
{
TtoB(n >> 1);//递归调用TtoB这个函数,参数右移1位,即N/2
printf("%d", n & 1);//输出n和1的位与
}
}

主要是“移位操作符”和“位与”的概念不清楚吧,百度一下

完成的功能就是1楼说的,打印一个十进制数的二进制编码

打印一个十进制数的二进制编码

n>>1 移位运算 向右移一位
n & 1 位逻辑运算 按位“与”