本文目錄一覽:
c語言怎麼將十進位轉化成二進位
#include stdio.h
void main()
{
//進位轉換函數的聲明
int transfer(int x);
int x;
printf(“請輸入一個十進位數:”);
scanf(“%d”,x);
printf(“轉換成二進位數是:%d\n”,transfer(x));
}
int transfer(int x)
{
int p=1,y=0,yushu;
while(1)
{
yushu=x%2;
x/=2;
y+=yushu*p;
p*=10;
if(x2)
{
y+=x*p;
break;
}
}
return y;
}
擴展資料:
(1)二進位轉十進位
方法:「按權展開求和」
【例】:
規律:個位上的數字的次數是0,十位上的數字的次數是1,……,依次遞增,而十分位的數字的次數是-1,百分位上數字的次數是-2,……,依次遞減。
注意:不是任何一個十進位小數都能轉換成有限位的二進位數。
(2)十進位轉二進位
十進位整數轉二進位數:「除以2取余,逆序排列」(除二取余法)
【例】:
89÷2 ……1
44÷2 ……0
22÷2 ……0
11÷2 ……1
5÷2 ……1
2÷2 ……0
1
十進位小數轉二進位數:「乘以2取整,順序排列」(乘2取整法)
參考資料:
百度百科-二進位
用c語言編寫十進位轉化二進位
#include stdio.h
void d2n(unsigned long d,int n)
{
if(d=n)
{
d2n(d/n,n);
}
printf(“%c”,”0123456789ABCDEF”[d%n]);
}
int main()
{
unsigned long d;
int n;
scanf(“%lu”,d);
d2n(d,2);
return 0;
}
C語言中怎樣調用函數將十進位轉換成二進位?
1、打開visualC++6.0-文件-新建-文件-C++SourceFile。
2、輸入預處理命令和主函數:
#includestdio.h /*輸入輸出頭文件*/
voidmain()/*空類型:主函數*/
3、定義變數和數組的數據類型並輸入一個十進位:
intb[16],x,k,r,i;/*定義變數和數組的數據類型為整型*/
printf(“輸入一個十進位:”);/*輸出文字提示*/
scanf(“%d”,x); /*輸入一個十進位數字*/
k=-1;/*將-1賦給k*/
4、用除R取余倒計法將十進位的數轉化成二進位的數:
do/*用循環將十進位的數轉化成二進位的數*/
{
r=x%2;/*用除R取余倒計法計算二進位*/
b[++k]=r;/*將值賦給數組*/
x/=2;/*將原數除2*/
}while(x=1);
5、輸出結果:
for(i=k;i=0;i–) /*將上面倒計的數正回來*/
printf(“%d”,b[i]);/*輸出結果*/
printf(“\n”);
6、完整的源代碼:
#includestdio.h /*輸入輸出頭文件*/
voidmain()/*空類型:主函數*/
{
intb[16],x,k,r,i;/*定義變數和數組的數據類型為整型*/
printf(“輸入一個十進位:”);/*輸出文字提示*/
scanf(“%d”,x); /*輸入一個十進位數字*/
k=-1;/*將-1賦給k*/
do/*用循環將十進位的數轉化成二進位的數*/
{
r=x%2;/*用除R取余倒計法計算二進位*/
b[++k]=r;/*將值賦給數組*/
x/=2;/*將原數除2*/
}while(x=1);
for(i=k;i=0;i–) /*將上面倒計的數正回來*/
printf(“%d”,b[i]);/*輸出結果*/
printf(“\n”);
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/279026.html