二进制的打印

下面是摘抄网友的的代码

void fun(int i, char *res){
    int j = 0;
    while(i){
        *(res + j) = i % 2 + '0';
        i /= 2;
        ++j;
    }
    *(res + j) = '\0';
    strrev(res);
}

这个感觉太冗长了。

而后是这个:

#include <iostream>
#include <bitset>
#include <string>

void printBinary(int n) {
    std::bitset<32> bits(n);
    for (int i = bits.size() - 1; i >= 0; --i) {
        std::cout << bits[i];
    }
    std::cout << std::endl;
}

感觉还比较简洁的c++代码

#include<iostream>
#include<bitset>

using namespace std;

void two(int x)
{
    bitset<32> two(x);
    for(int len=two.size()-1;len>=0;--len)
        cout<<two[len];
    cout<<endl;
}

这个是我看到的非常好的二进制显示代码。。

不过,最后我要的是推荐我更欣赏的代码,

而且是c的。。哈哈

void binary_(int x)
{
    if (x<=0) return;
    else
    {            
        binary_(x/2);
        printf("%d",x%2);
    }
}

很好好强大,,

使用递归实现的。

我确实拜服。。

以后要多多用递归。。

哈哈。
原文链接: https://www.cnblogs.com/hcu5555/archive/2012/09/03/2668661.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/61700

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月9日 上午10:06
下一篇 2023年2月9日 上午10:06

相关推荐