我有一个像这样的代码,把一个短整数转换成二进制,但是开头打印的是零。那么下面是如何确保这些零不被显示,并且输出从第一个开始?同时,使用标准语言运算符和按位运算。
int main()
{
unsigned short int k;
while (true)
{
cin >> k;
if (!k)
{
break;
}
for (int i = 0; i < 16; i++)
{
cout << (k >> 15);
k <<= 1;
}
cout << endl;
}
使用递归,您可以执行以下操作:
void print_binary(unsigned int n)
{
if (n >> 1 != 0) print_binary(n >> 1);
std::cout << (n & 1);
}
演示