當前位置:編程學習大全網 - 編程語言 - 求十進制轉換二進制C語言代碼

求十進制轉換二進制C語言代碼

求十進制轉換二進制C語言代碼代碼如下:

#include <stdio.h>

#define? NR (sizeof(int)*8)? // 二進制位的個數

void deciToBin(int num); // 十進制轉換為二進制函數聲明

/* 主函數 */

int main(void)

{

int num;

fprintf(stdout, "請輸入壹個正整數:");

/* 獲取並檢查用戶輸入 */

while (1)

{

if (fscanf(stdin, "%d", &num) != 1)

{

fprintf(stderr, "輸入錯誤!請重新輸入:");

while (getchar() != '\n'); // 去掉多余的非法字符?

continue;

}

else if (num < 0) ?// 輸入的數不能為負數

{

fprintf(stderr, "請輸入錯誤!請輸入正整數:");

continue;

}

else

break;

}

fprintf(stdout, "對應二進制為:");

#if 1 /* 方法壹: 不使用遞歸 */

char bitArr[NR];

int i = -1;

/* 算法:棧的數學模型 */

do {

i += 1;

bitArr[i] = num % 2;

num /= 2;

} while (num != 0);

/* 逆序打印 */

for (i ; i >= 0; i--)

{

fprintf(stdout, "%d", bitArr[i]);

}

fputc('\n', stdout);

#else /* 方法二: 使用遞歸 */

if (num == 0)

{

fprintf(stdout, "0\n");

}

else

{

deciToBin(num); // 調用第歸函數

fputc('\n', stdout);

}

#endif?

return 0;

}

/*

* @函數名:deciToBin

* @函數功能:實現十進制轉換為二進制

* @參數:需要轉換的十進制整數

*/

void deciToBin(int num)

{

/* 第歸結束條件 */

if (num == 0)

{

return;

}

/* 第歸調用 */

deciToBin(num/2);

/* 逆序打印 */

fprintf(stdout, "%d", num%2);

}

擴展資料:

使用C語言編程實現任意進制數(2-16進制)轉換為其他任意進制數(2-16進制)方法:

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

int TenNum(char a[],int B);

void Numchange(int m, int B);

int TenNum(char a[], int B)

{

int len, i, num;

int sum = 0; ?

len = strlen(a);

for (i = 0; i < len; i++)

{

if (a[i] >= '0' && a[i] <= '9')

num = a[i] - '0';

else if (a[i] >= 'A' && a[i] <= 'F')

num = a[i] - 'A' + 10;

sum = sum * B + num;

}

return sum;

}

void Numchange(int m, int B)

{

int n;

if (m)

{

Numchange(m / B, B);

n = m % B;

if (n < 10)

printf("%d", n);

else

printf("%c", n + 55);

}

}

int main()

{

int B, b;

char a[20];

printf("請輸入待轉換數的進制(2-16):");

do {

scanf_s("%d", &B); ?

} while (B < 2 && B > 16);

printf("請輸入待轉換數:");

getchar(); ?

gets_s(a);

int m = TenNum(a, B);

printf("請輸入需要轉成幾進制數(2-16):");

do {

scanf_s("%d", &b);

} while (B < 2 && B > 16);

printf("%d進制數%s轉換為%d進制數的結果為:",B,a,b);

Numchange(m, b);

printf("\n");

system("pause");

return 0;

}

  • 上一篇:化學教學設計課件(5篇)
  • 下一篇:在開始-運行中輸入什麽命令能定時開啟某個軟件(是at 時間 inte什麽的忘記了 “應用程序”)
  • copyright 2024編程學習大全網