【问题标题】:How not to print zeros at the beginning of the binary representation of a usigned short int?如何不在 unsigned short int 的二进制表示的开头打印零?
【发布时间】:2023-03-19 14:13:01
【问题描述】:

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

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

【问题讨论】:

    标签: c++ binary unsigned-integer representation


    【解决方案1】:

    使用递归,你可以这样做:

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

    Demo

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-03
      • 1970-01-01
      相关资源
      最近更新 更多