C趣味程序百例(03)數(shù)制轉換

字號:

10.數(shù)制轉換
     將任一整數(shù)轉換為二進制形式
    *問題分析與算法設計
     將十進制整數(shù)轉換為二進制的方法很多,這里介紹的實現(xiàn)方法利用了C語言能夠對位進行操作的特點。對于C語言來說,一個整數(shù)在計算機內就是以二進制的形式存儲的,所以沒有必要再將一個整數(shù)經(jīng)過一系列的運算轉換為二進制形式,只要將整數(shù)在內存中的二進制表示輸出即可。
    *程序說明與注釋
    #include
    void printb(int,int);
    void main()
    {
     int x;printf("Input number:");
     scanf("%d",&x);
     printf("number of decimal form:%d\n",x);
     printf(" it's binary form:");
     printb(x,sizeof(int)*8); /*x:整數(shù) sizeof(int):int型在內存中所占的字節(jié)數(shù)
     sizeof(int)*8:int型對應的位數(shù)*/
     putchar('\n');
    }
    void printb(int x,int n)
    {
     if(n>0)
     {
     putchar('0'+((unsigned)(x&(1<<(n-1)))>>(n-1))); /*輸出第n位*/
     printb(x,n-1); /*歸調用,輸出x的后n-1位*/
     }
    }