C++ Program to convert hexadecimal to decimal with std::hex
/** * Converting Hexadecimal to Decimal in C++ codebind.com * */ #include <iostream> int main() { int integer; std::cout<<"Entex Hex to Convert hex to decimal"<<std::endl; std::cin >> std::hex >> integer; std::cout << integer << std::endl; return 0; } /* OUTPUT: Entex Hex to Convert hex to decimal 10 16 */
C++ Program to convert hexadecimal to decimal without std::hex
/** * Converting Hexadecimal to Decimal in C++ codebind.com * */ #include<iostream> #include<stdlib.h> #include<conio.h> #include<math.h> unsigned long HexToDec(char hex[]) { char *hexstr; int length = 0; const int base = 16; // Base of Hexadecimal Number unsigned long decnum = 0; int i; // Now Find the length of Hexadecimal Number for (hexstr = hex; *hexstr != '\0'; hexstr++) { length++; } // Now Find Hexadecimal Number hexstr = hex; for (i = 0; *hexstr != '\0' && i < length; i++, hexstr++) { // Compare *hexstr with ASCII values if (*hexstr >= 48 && *hexstr <= 57) { // is *hexstr Between 0-9 decnum += (((int)(*hexstr)) - 48) * pow(base, length - i - 1); } else if ((*hexstr >= 65 && *hexstr <= 70)) { // is *hexstr Between A-F decnum += (((int)(*hexstr)) - 55) * pow(base, length - i - 1); } else if (*hexstr >= 97 && *hexstr <= 102) { // is *hexstr Between a-f decnum += (((int)(*hexstr)) - 87) * pow(base, length - i - 1); } else { std::cout<<"Invalid Hexadecimal Number \n"; } } return decnum; } void main() { unsigned long decnum; char hex[9]; // 8 characters for 32-bit Hexadecimal Number and one for ' ' std::cout<<" Enter 32-bit Hexadecimal Number : "; std::cin>>hex; decnum = HexToDec(hex); std::cout<<"Value in Decimal Number is "<<decnum<<"\n"; getch(); } /* OUTPUT: Enter 32-bit Hexadecimal Number : 10 Value in Decimal Number is 16 */
but its valid only upto 13 characters, what if i want to give around 30 35 characters for input…
kindly help me out for this.