Printing integer in Binary format (打印一个整数的二进制形式)

我写的一段打印整数的二进制的代码,因为经常用到,就把它贴出来了。

 void printBinary(int nNum)
{
    int i = 0, j = 0;
    int *nOutBin;
    
    j =i = sizeof(int)*8;
    nOutBin = (int*)malloc(i+1);
    memset(nOutBin, 0, i+1);
    while (nNum!=0) {
        nOutBin[–i] = nNum % 2;
        nNum = nNum / 2;
    }
    while (i<j)
        printf("%d", nOutBin[i++]);
    printf("\n");

    return;
}

 
转换原理:
假设要将十进制数N转换为d进制数,一个简单的转换算法是重复下述两步,直到N等于零:
X = N mod d  (其中mod为求余运算)
N = N div d   (其中div为整除运算 )
在上述计算过程中,第一次求出的X值为d进制数的最低位,最后一次求出的X值为d进制数的最高位,
所以上述算法是从低位到高位顺序产生d进制数各个数位上的数。

 

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s