回覆列表
-
1 # 學果網教育平臺
-
2 # 使用者6488643724324
#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(x<2) { y+=x*p; break; } } return y; }
方法一
#include<stdio.h>
int main(void)
{
int i=0,n,a[32];
printf("請輸入一個十進位制整數.\n");
scanf("%d",&n);
while (n>0)
{
a[i]=n%2;
i=i+1;
n=n/2;
}
printf("十進位制整數轉換為二進位制數是:\n");
for(i--;i>=0;i--)
printf("%d",a[i]);
printf("\n");
return 0;
}
方法二
#include "stdio.h"
int main()
{
int a,r,i=0,j=1,count[100]; //輸入的是a
printf("請輸入一個十進位制整數:\n");
scanf("%d",&a);
do //迴圈,直到a等於0跳出
{
r=a%2; //求每一次的餘數,實際上最後輸出的也是這個
a=a/2;
i++;
count[i]=r;
}
while(a!=0);
printf("十進位制整數轉換為二進位制數是:\n");
for(j=i;j>0;j--) //這裡是倒序輸出
printf("%d",count[j]);
}