c - C语言中如何判断一个数是二进制还是十进制

标签 c

我尝试制作一个计算器,首先读取用户的输入,然后决定输入是二进制还是十进制,然后进行转换。 我几乎得到了一切,但无法想出标识符!这是我得到的代码:

#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>

int a;
char num[100];
int number[100];
int decimal_binary (int n);
int binary_decimal (int n);

void errorcode(void);
bool bin, decim;

int main (){
  bin (false);
  decim (false);
  printf ("enter a number: ");
  gets (num);
  a = strlen(num);
  if (a > 8){
    errorcode();
    //printf("That is an invalid number!");
    //exit(45);
  }

  for (int i=0; i < a; i++){
    number[i] = num[i] -'0';
    printf("%d", number[i]);
  }

  int decimal_binary(int n){
    int rem, i=1, binary = 0;
    while (n != 0)
    {
        rem =n%2;
        n/=2;
        binary+=rem *i;
        i*=10;
    }
    return binary;
  }

  int binary_decimal(int n)
  {
    int decimal = 0, i=0, rem;
    while (n!-0){
        rem = n%10;
        n/=10;
        decimal += rem *pow(2,i);
        ++i;
    }
    return decimal;
  }
}

void errorcode(void){
  printf("That is an invalid number!");
  exit(45);
}

最佳答案

没有办法仅仅通过分析输入的数字的字符来检测输入的数字是二进制还是十进制。但是,如果您研究随操作系统一起提供的 Microsoft Windows 计算器应用程序,“程序员”类型的计算器会从用户那里获取输入的数字是二进制还是十进制的输入,然后在其代码内部检查输入的数字是否为二进制或十进制。 number 是有效的二进制或十进制数。

简而言之,您的代码必须告诉用户指定输入的数字。

我建议您研究 Microsoft 计算器应用程序的“程序员”类型计算,以帮助您了解您想要实现的目标。

关于c - C语言中如何判断一个数是二进制还是十进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29003703/

相关文章:

C webserver中进程间的跨平台通信方式

c - C中的函数声明器

c - 如何设置 float 的精度

c - 为什么在结构中不可能有静态成员?

c - 将 rand() 用于加密不安全的随机数是否可以接受?

C 将数据作为字符串读取并将其转换为 float 并写回文件中

c - 为什么空 C 程序中执行的指令总数会发生变化?

c - 为多个平台使用存储 C 结构——这种方法行得通吗?

c - 为什么这个主机会导致段错误?

java - GNU-GhostScript-9.06 的商业用途,其许可证为 Gnu-通用公共(public)许可证 V3