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位*/
}
}
將任一整數(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位*/
}
}