C語言將十進制數轉化為二進制(遞歸,規定位數)


/*運用遞歸算法*/

#include<stdio.h>
void B(int n)   //定義函數
{
 if (n != 0)
 {
  printf("%d",n%2);
  B(n / 2);
 }
}
int main()
{

 int n;
 printf("Input number:");

 scanf("%d",&n);

  printf("輸出二進制:");

 B(n);   //在B()函數里打印二進制數
 return 0;
}

/*定義數組並使用do{}while();進行賦值*/

#include<stdio.h>
int main()
{
 int a;
 char s[20];
 int i = 0, rem;
 printf("Input number:");
 scanf("%d", &a);
 do
 {
  rem = a % 2;

  a = a / 2;
  s[i] = rem;
  i++;
 } while (a != 0);
 printf("輸出二進制:");
 while (i > 0)
  printf("%d", s[--i]);//

  return 0;
}

/*該代碼可以實現固定輸出位數*/

#include<stdio.h>
#define N 32  //固定位數
int main()
{
 int arr[N] = {0};//將數組初始化為0(位數不滿時,將輸出0填補)
 int i;
 int n;
 printf("Input number:");
 scanf("%d",&n);
 for (i = N-1; i >=0; i--)  //對數組從后往前賦值
 {
  arr[i] = n % 2;
  n = n / 2;
 }

 printf("輸出二進制:");
 for (i = 0; i <= N - 1; i++)
 {
  printf("%d",arr[i]);
 }
 return 0;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM