提问者:小点点

如何不在使用的short int的二进制表示的开头打印零?


我有一个像这样的代码,把一个短整数转换成二进制,但是开头打印的是零。那么下面是如何确保这些零不被显示,并且输出从第一个开始?同时,使用标准语言运算符和按位运算。

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;
    } 

共1个答案

匿名用户

使用递归,您可以执行以下操作:

void print_binary(unsigned int n)
{
    if (n >> 1 != 0) print_binary(n >> 1);
    std::cout << (n & 1);
}

演示