इस ट्यूटोरियल में, हम किसी भी आधार से दशमलव और इसके विपरीत में परिवर्तित करने के लिए एक प्रोग्राम पर चर्चा करेंगे।
इसके लिए हमें एक पूर्णांक और उसका आधार प्रदान किया जाएगा। हमारा कार्य संख्या को उसके दशमलव समकक्ष में परिवर्तित करना है। आगे हम इस प्रक्रिया का उल्टा भी करेंगे।
उदाहरण
#include <stdio.h> #include <string.h> //वर्ण का मान वापस करना int val(char c) { if (c >= '0' && c <= '9') return (int)c - '0'; else return (int)c - 'A' + 10; } //संख्या को दशमलव समकक्ष में परिवर्तित करना int convert_decimal(char *str, int base) { int len = strlen(str); int power = 1; int num = 0; int i; for (i = len - 1; i >= 0; i--) { if (val(str[i]) >= base) { printf("Invalid Number"); return -1; } num += val(str[i]) * power; power = power * base; } return num; } int main() { char str[] = "11A"; int base = 16; printf("Decimal equivalent of %s in base %d is %d\n", str, base, convert_decimal(str, base)); return 0; } आउटपुट
Decimal equivalent of 11A in base 16 is 282
अब ऑपरेशन का उल्टा प्रदर्शन कर रहे हैं।
उदाहरण
#include <stdio.h> #include <string.h> //वर्ण का मान वापस करना char reVal(int num) { if (num >= 0 && num <= 9) return (char)(num + '0'); else return (char)(num - 10 + 'A'); } //दी गई स्ट्रिंग को उल्टा करना void reverse_string(char *str) { int len = strlen(str); int i; for (i = 0; i < len/2; i++) { char temp = str[i]; str[i] = str[len-i-1]; str[len-i-1] = temp; } } //आधार 'b' के साथ समकक्ष संख्या में परिवर्तित करना char* convert_base(char res[], int base, int inputNum) { int index = 0; while (inputNum > 0) { res[index++] = reVal(inputNum % base); inputNum /= base; } res[index] = '\0'; परिणाम उल्टा करना reverse_string(res); return res; } int main() { int inputNum = 282, base = 16; char res[100]; printf("Equivalent of %d in base %d is %s\n", inputNum, base, convert_base(res, base, inputNum)); return 0; } आउटपुट
Equivalent of 282 in base 16 is 11A