📌  相关文章
📜  C程序将二进制数转换为八进制,反之亦然(1)

📅  最后修改于: 2023-12-03 15:14:26.215000             🧑  作者: Mango

将二进制数转换为八进制

二进制数可以通过每三位一组的方式转换为八进制数。

以下是C程序将二进制数转换为八进制的实现:

#include <stdio.h>

int main() {
   long long binaryNum, octalNum = 0;
   int i = 0, remainder;

   printf("请输入一个二进制数: ");
   scanf("%lld", &binaryNum);

   // 将二进制数转换为八进制数
   while (binaryNum != 0) {
      remainder = binaryNum % 10;
      binaryNum /= 10;
      octalNum += remainder * pow(2, i);
      ++i;
   }

   printf("该二进制数的八进制形式为 %lld", octalNum);

   return 0;
}

运行结果:

请输入一个二进制数: 101010
该二进制数的八进制形式为 52

将八进制数转换为二进制

与将二进制数转换为八进制数类似,八进制数可以通过每位拆分为三个二进制数的方式转换为二进制数。

以下是C程序将八进制数转换为二进制的实现:

#include <stdio.h>

int main() {
   long long octalNum, binaryNum = 0;
   int i = 0, remainder;

   printf("请输入一个八进制数: ");
   scanf("%lld", &octalNum);

   // 将八进制数转换为二进制数
   while (octalNum != 0) {
      remainder = octalNum % 10;
      octalNum /= 10;
      binaryNum += remainder * pow(2, i);
      i += 3;
   }

   printf("该八进制数的二进制形式为 %lld", binaryNum);

   return 0;
}

运行结果:

请输入一个八进制数: 67
该八进制数的二进制形式为 110111

综上所述,以上两个程序提供了将二进制数转换为八进制数以及将八进制数转换为二进制数的方法。