c - 如何在C中将十六进制字符串(带 float )转换为二进制?

标签 c string binary hex

我已经有一个程序可以将十六进制数转换为二进制形式,唯一的问题是它不接受带有 float 的十六进制数。这是代码:

    /* HEXADECIMAL TO BINARY */
    #include<stdio.h>
    #define MAX 1000

    int main(){
char hexaDecimal[MAX], *pch;
long int i=0;
clrscr();
printf("Enter any hexadecimal number: ");
scanf("%s",hexaDecimal);
printf("\nEquivalent binary value: ");

while(hexaDecimal[i]){
     switch(hexaDecimal[i]){
         case '0': printf("0000"); break;
         case '1': printf("0001"); break;
         case '2': printf("0010"); break;
         case '3': printf("0011"); break;
         case '4': printf("0100"); break;
         case '5': printf("0101"); break;
         case '6': printf("0110"); break;
         case '7': printf("0111"); break;
         case '8': printf("1000"); break;
         case '9': printf("1001"); break;
         case 'A': printf("1010"); break;
         case 'B': printf("1011"); break;
         case 'C': printf("1100"); break;
         case 'D': printf("1101"); break;
         case 'E': printf("1110"); break;
         case 'F': printf("1111"); break;
         case 'a': printf("1010"); break;
         case 'b': printf("1011"); break;
         case 'c': printf("1100"); break;
         case 'd': printf("1101"); break;
         case 'e': printf("1110"); break;
         case 'f': printf("1111"); break;
     default:  printf("\nInvalid hexadecimal digit %c ",hexaDecimal[i]);
     return 0;
     }
     i++;
}
    getch();
return 0;
}

我尝试使用 strtok 分割字符串,但它不起作用。我所需要的只是让这个程序也能处理十六进制分数。感谢您提前回复!

最佳答案

只需添加到您的 switch block 即可:

case '.': printf("."); break;

关于c - 如何在C中将十六进制字符串(带 float )转换为二进制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32973474/

相关文章:

string - 将字符串转换为 int8 数组

c - 如何让我的 "Main"函数以正确的顺序执行?

cvLoadImage : Additional Specifications

java - 正确格式化日期

string - R - 输入多个不带引号的字符串

python - 二元与运算符

python - 计算二进制文件中的出现次数 Python 2X

javascript - 项目具有值(value),但在 Uint8Array 中返回 'undefined'

c - 局部静态变量和多线程——安全吗?

在 Windows (C/C++) 上检查应用程序二进制文件的位数