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进制数各个数位上的数。

 

Comments:

Post a Comment:
Comments are closed for this entry.
About

williamxue

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today