我已經有一個將十六進制數字轉換爲二進制形式的程序,唯一的問題是它不接受帶有浮點數的十六進制數字。下面是代碼:如何將C中的十六進制字符串(帶浮點數)轉換爲二進制文件?
/* 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分割字符串,但它不工作..所有我需要的是這個節目也以十六進制的分數工作。預先感謝您的回覆!
你輸入什麼樣的輸入? 「十六進制浮點數」是什麼意思? – Cubia
你不應該有個案'。' –
輸入是否包含指數的「e」? '''','+','.'怎麼樣? – chux