[C語言] 十進位數字轉換成二進位數

學習筆記
Feb 17, 2021

--

十進->2375=2*10³+3*10²+7*10¹+5*10⁰

二進->1011=1*2³+0*2²+1*2¹+1*2⁰

*想法:11 (十進制) -> ? (二進制) :

  • 11/2=5…1
  • 5/2=2…1
  • 2/2=1…0
  • 2/1=0…1
  • 11(十進制)->1011(二進制)

*使用陣列存數字(餘數)

/* 程式功能: [C語言] 十進位轉換成二進位數 */
//十進->2375=2*10^3+3*10^2+7*10^1+5*10^0
//二進->1011=1*2^3+0*2^2+1*2^1+1*2^0
#include <stdio.h>int main()
{
int num=0;
int i=0;
int a[12];

printf("輸入欲轉換十進位數字:\n");
scanf("%d",&num);

//求每回商數及餘數
//把餘數存進陣列
while(num>0){
a[i]=num%2;
num=num/2;
i++;
}
//迴圈最後一次i++會多加一次故減一
i--;

printf("十進轉二進位為:\n");

//printf[i],i=3,2,1,0
for(;i>=0;i--){
printf("%d",a[i]);
}
return 0;
}

--

--

No responses yet