- 1 1. परिचय
- 2 2. C gengo मा 10 shinsū लाई 16 shinsū मा रूपान्तरण गर्ने तरिका
- 3 3. C भाषा मा 16‑आधारको संख्या लाई 10‑आधारमा रूपान्तरण गर्ने तरिका
- 4 4. व्यावहारिक नमूना कोड
- 5 5. सावधानीहरू र सर्वश्रेष्ठ अभ्यासहरू
- 6 6. FAQ(सामान्य प्रश्न)
- 6.1 printf कार्यले 16-आधारको आउटपुटको सुरुमा “0x” कसरी थप्ने?
- 6.2 strtol कार्यले अवैध स्ट्रिङलाई रूपान्तरण गर्ने प्रयास गर्दा के हुन्छ?
- 6.3 printf कार्य बिना 10-आधारलाई 16-आधारमा रूपान्तरण कसरी गर्ने?
- 6.4 scanf कार्यले अंकसंख्यालाई सीमित गरेर इनपुट कसरी लिने?
- 6.5 अन्य आधारहरू (उदाहरण: 2-आधार वा 8-आधार) मा रूपान्तरण कसरी गर्ने?
- 6.6 ठूला अक्षरको 16-आधारलाई साना अक्षरमा रूपान्तरण कसरी गर्ने?
- 6.7 16-आधारमा शून्य-भरेको स्वरूपमा आउटपुट कसरी गर्ने?
- 7 7. सारांश
1. परिचय
संख्याको आधार(आधार)के हो
कम्प्युटरको संसारमा, संख्याहरू विभिन्न आधार(प्रगतिसंख्या)मा व्यक्त गरिन्छन्। हामी दैनिक रूपमा प्रयोग गर्ने आधार 10‑आधार हो, तर C भाषा मा यसमा 16‑आधार, 2‑आधार, 8‑आधार आदि पनि व्यापक रूपमा प्रयोग हुन्छ। विशेष गरी 16‑आधार मेमोरी ठेगाना, बिट अपरेसन, एम्बेडेड प्रणाली, रङ कोड निर्दिष्ट गर्ने आदि मा बारम्बार देखिन्छ।
उदाहरणका लागि, रङ कोड \”#FFFFFF\” 16‑आधारमा व्यक्त गरिएको मान हो, जसलाई 10‑आधारमा रूपान्तरण गर्दा \”16777215\” हुन्छ। यसरी, आधारको रूपान्तरणलाई सही रूपमा बुझ्न सक्नु C भाषा प्रयोग गर्दा महत्त्वपूर्ण छ।
लेखको उद्देश्य
यस लेखमा, C भाषामा 10‑आधारबाट 16‑आधार, तथा 16‑आधारबाट 10‑आधारमा रूपान्तरण गर्ने तरिका स्पष्ट रूपमा व्याख्या गरिनेछ। आधारभूत ज्ञानदेखि व्यावहारिक नमुना कोडसम्म समेटिएको छ, जसले शुरुआतीहरूलाई पनि तुरुन्तै प्रयोग गर्न सकिने सामग्री बनाउँछ।
2. C gengo मा 10 shinsū लाई 16 shinsū मा रूपान्तरण गर्ने तरिका
printf kansū लाई प्रयोग गर्ने तरिका
C gengo मा, printf
kansū प्रयोग गरेर 10 shinsū लाई सजिलै 16 shinsū मा रूपान्तरण गरी देखाउन सकिन्छ।
kihon rei
#include <stdio.h>
int main() {
int number = 255; // दशमलव संख्या
printf("%xn", number); // छोटा अक्षरको १६-आधार संख्या
printf("%Xn", number); // ठूलो अक्षरको १६-आधार संख्या
return 0;
}
kaisetsu
%x
: सानो अक्षरको 16 shinsū प्रदर्शन%X
: ठूला अक्षरको 16 shinsū प्रदर्शन
उदाहरणका लागि、number = 255
को अवस्थामा、आउटपुट तलको जस्तै हुन्छ।
%x
:ff
%X
:FF
keta sū लाई मिलाउने तरिका
फॉर्मेट निर्दिष्टकर्ता मा keta sū निर्दिष्ट गरेर, निश्चित keta sū मा 16 shinsū देखाउन सकिन्छ।
#include <stdio.h>
int main() {
int number = 255;
printf("%04xn", number // चार अ्कमा मिलाएर प्रदर्शन
return 0;
}
आउटपुट: 00ff
शुरूमा 0 थपेर, keta sū कम भए पनि मिलेको देखावट प्राप्त हुन्छ।
sprintf kansū लाई प्रयोग गर्ने तरिका
printf
kansū को सट्टा、sprintf
kansū प्रयोग गर्दा、henkan kekka लाई mojiretsu को रूपमा kakunō गर्न सकिन्छ।
kihon rei
#include <stdio.h>
int main() {
int number = 255;
char buffer[10];
sprintf(buffer, "%x", number);
printf("हेक्साडेसिमल: %sn", buffer); // स्ट्रिङको रूपमा आउटपुट
return 0;
}
kaisetsu
buffer
मा 16 shinsū को mojiretsu काकुनो हुन्छ, त्यसैले पछि sai riyō गर्न वा betsu no shori मा पास गर्न सकिन्छ। यसले अधिक jūnan प्रोग्राम बनाउने सम्भावना दिन्छ।
shudō मा परिवर्तन(bitto enzan प्रयोग गरेर)
bitto enzan प्रयोग गरेर shudō मा 10 shinsū लाई 16 shinsū मा रूपान्तरण गर्ने तरिका व्याख्या गर्छौं। यो shinsū henkan को बुझाइलाई गहिरो बनाउने लागि उपयोगी छ।
jitsurei kōdo
#include <stdio.h>
#include <string.h>
int main() {
int number = 255;
char hex[10];
int i = 0;
while (number > 0) {
int remainder = number % 16;
hex[i++] = (remainder < 10) ? '0' + remainder : 'A' + (remainder - 10);
number /= 16;
}
hex[i] = '\0';
// स्ट्रिङ उल्टाउनुहोस्
for (int j = 0; j < i / 2; j++) {
char temp = hex[j];
hex[j] = hex[i - j - 1];
hex[i - j - 1] = temp;
}
printf("हेक्साडेसिमल: %sn", hex);
return 0;
}
kaisetsu
number % 16
द्वारा बाँकी गणना गरी, त्यसलाई 16 shinsū को अनुरूप अक्षरमा रूपान्तरण गर्छ।number /= 16
द्वारा भागफल अद्यावधिक गरी, अर्को keta sū गणना गर्छ।- अन्तमा mojiretsu उल्टाएर सही क्रममा आउटपुट गर्छ।
यो कोडले, shudō मा kiso henkan गर्दा प्रयोग हुने मूलभूत विधि देखाउँछ।
3. C भाषा मा 16‑आधारको संख्या लाई 10‑आधारमा रूपान्तरण गर्ने तरिका
scanf कार्यलाई प्रयोग गर्ने तरिका
scanf
कार्यले 16‑आधारको मानलाई सिधै 10‑आधारको रूपमा पढ्न सक्छ।
मूल उदाहरण
#include <stdio.h>
int main() {
int number;
printf("16-आधारको संख्या प्रविष्ट गर्नुहोस्: ");
scanf("%x", &number); // 16-आधारको संख्या इनपुटको रूपमा स्वीकार गर्दछ
printf("10-आधारको संख्या: %dn", number); // 10-आधारको संख्या प्रदर्शन गर्दछ
return 0;
}
व्याख्या
- फरम्याट निर्दिष्टकर्ता
%x
प्रयोग गरेर, 16‑आधारको इनपुटलाई स्वीकार गर्न सकिन्छ। - इनपुट गरिएको मानलाई 10‑आधारमा रूपान्तरण गरी, चल
number
मा संग्रह गरिन्छ। printf
कार्यमा%d
प्रयोग गरेर 10‑आधारको मान देखाइन्छ।
चलाउने उदाहरण
इनपुट: FF
आउटपुट: 10‑आधार: 255
ध्यान दिनु पर्ने बुँदा
- प्रयोगकर्ताले इनपुट गर्ने मान 16‑आधारको ढाँचामा (उदाहरण:
FF
,1A3
) हुनुपर्छ। - सुरुमा “0x” थप्दा पनि समस्या बिना प्रक्रिया हुन्छ (उदाहरण:
0xFF
)。
strtol कार्यलाई प्रयोग गर्ने तरिका
strtol
कार्यले स्ट्रिङलाई आधार निर्दिष्ट गरेर संख्यामा रूपान्तरण गर्न सक्ने उपयोगी कार्य हो।
मूल उदाहरण
#include <stdio.h>
#include <stdlib.h>
int main() {
char hexString[] = "FF"; // हेक्साडेसिमल स्ट्रिङ
long number = strtol(hexString, NULL, 16); // आधार १६ निर्दिष्ट गरेर रूपान्तरण
printf("दशमलव संख्या: %ldn", number);
return 0;
}
व्याख्या
strtol
कार्यको पहिलो तर्कमा, रूपान्तरण गर्न चाहिने स्ट्रिङ (यहाँhexString
) निर्दिष्ट गरिन्छ।- दोस्रो तर्क रूपान्तरण पछि स्ट्रिङको अन्त्य देखाउने पोइन्टर हो, यस पटक प्रयोग नगरेको कारण
NULL
निर्दिष्ट गरिएको छ। - तेस्रो तर्कमा आधार (यहाँ 16) निर्दिष्ट गरेर, 16‑आधारबाट 10‑आधारमा रूपान्तरण गरिन्छ।
चलाउने उदाहरण
इनपुट: "FF"
आउटपुट: 10‑आधार: 255
त्रुटि प्रक्रिया सहित strtol को प्रयोग विधि
त्रुटि प्रक्रिया सहितको उदाहरण
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
int main() {
char hexString[] = "ZZZ"; // अमान्य १६-आधार
char *endptr;
errno = 0; // त्रुटि प्रारम्भ गर्नुहोस्
long number = strtol(hexString, &endptr, 16);
if (errno != 0 || *endptr != '\0') {
printf("अमान्य इनपुट हो。n");
} else {
printf("दशमलव संख्या: %ldn", number);
}
return 0;
}
व्याख्या
endptr
रूपान्तरण समाप्त भएको स्थानलाई संकेत गर्छ। रूपान्तरण नभएको अक्षर छ भने,*endptr
‘\0’ होइन बनिन्छ।errno
जाँच गरेर, ओभरफ्लो वा अन्य त्रुटिहरू पत्ता लगाउन सकिन्छ।- अवैध इनपुट पत्ता लागेमा त्रुटि सन्देश देखाइन्छ।
चलाउने उदाहरण
इनपुट: "ZZZ"
आउटपुट: अवैध इनपुट हो।
हस्तमैत्री रूपान्तरण विधि
उदाहरण कोड
#include <stdio.h>
#include <string.h>
#include <math.h>
int main() {
char hexString[] = "FF";
int length = strlen(hexString);
int decimal = 0;
for (int i = 0; i < length; i++) {
char digit = hexString[i];
int value;
if (digit >= '0' && digit <= '9') {
value = digit - '0';
} else if (digit >= 'A' && digit <= 'F') {
value = digit - 'A' + 10;
} else if (digit >= 'a' && digit <= 'f') {
value = digit - 'a' + 10;
} else {
printf("अमान्य अक्षर हो。\n");
return 1;
}
decimal += value * pow(16, length - i - 1);
}
printf("दशमलव: %d\n", decimal);
return 0;
}
व्याख्या
- प्रत्येक अक्षरलाई एक अंकको रूपमा विश्लेषण गरी, सम्बन्धित 10‑आधारको मानमा रूपान्तरण गरिन्छ।
- अंकको वजन (16 को घात) लाई गुणा गरी जम्मा गरिन्छ।
चलाउने उदाहरण
इनपुट: "FF"
आउटपुट: 10‑आधार: 255
4. व्यावहारिक नमूना कोड
द्वि-दिशात्मक रूपान्तरण कार्यक्रम
कार्यक्रम सारांश
यो कार्यक्रमले तलका कार्यहरू चयन गर्न सकिने बनाउँछ।
- दशमलवलाई hexadecimal मा रूपान्तरण
- hexadecimal लाई दशमलवमा रूपान्तरण
कोड उदाहरण
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
void decimalToHexadecimal() {
int decimal;
printf("10 दशमलव संख्या प्रविष्ट गर्नुहोस्: ");
scanf("%d", &decimal);
printf("16-आधार संख्या: %Xn", decimal);
}
void hexadecimalToDecimal() {
char hex[20];
printf("16-आधार संख्या प्रविष्ट गर्नुहोस्: ");
scanf("%s", hex);
// इनपुट स्ट्रिङको वैधता जाँच
for (int i = 0; i < strlen(hex); i++) {
if (!isxdigit(hex[i])) {
printf("अवैध 16-आधार संख्या हो。n");
return;
}
}
int decimal = (int)strtol(hex, NULL, 16);
printf("10-आधार संख्या: %dn", decimal);
}
int main() {
int choice;
while (1) {
printf("nपरिवर्तन विकल्प चयन गर्नुहोस्:n");
printf("1. 10-आधार संख्या 16-आधारमा परिवर्तन गर्नुहोस्\n");
printf("2. 16-आधार संख्या 10-आधारमा परिवर्तन गर्नुहोस्\n");
printf("3. समाप्ति\n");
printf("चयन: ");
scanf("%d", &choice);
switch (choice) {
case 1:
decimalToHexadecimal();
break;
case 2:
hexadecimalToDecimal();
break;
case 3:
printf("प्रोग्राम समाप्त हुन्छ।n");
return 0;
default:
printf("अवैध चयन। पुनः प्रविष्ट गर्नुहोस्।n");
}
}
return 0;
}
चलाउने उदाहरण
केस 1: दशमलवलाई hexadecimal मा रूपान्तरण
कन्वर्जन विकल्प चयन गर्नुहोस्:
1. 10-आधारलाई 16-आधारमा रूपान्तरण गर्नुहोस्
2. 16-आधारलाई 10-आधारमा रूपान्तरण गर्नुहोस्
3. समाप्त
चयन: 1
10-आधार इनपुट गर्नुहोस्: 255
16-आधार: FF
केस 2: hexadecimal लाई दशमलवमा रूपान्तरण
कन्वर्जन विकल्प चयन गर्नुहोस्:
1. 10-आधारलाई 16-आधारमा रूपान्तरण गर्नुहोस्
2. 16-आधारलाई 10-आधारमा रूपान्तरण गर्नुहोस्
3. समाप्त
चयन: 2
16-आधारलाई इनपुट गर्नुहोस्: FF
10-आधार: 255
केस 3: अमान्य hexadecimal इनपुट
कन्वर्जन विकल्प चयन गर्नुहोस्:
1. दशमलवलाई षोडशमा रूपान्तरण गर्नुहोस्
2. षोडशलाई दशमलवमा रूपान्तरण गर्नुहोस्
3. समाप्त
चयन: 2
षोडशलाई इनपुट गर्नुहोस्: ZZZ
अवैध षोडश संख्या हो।
त्रुटि ह्यान्डलिंगका बुँदाहरू
अमान्य इनपुटको उपाय
- hexadecimal इनपुटको वैधता जाँच:
isxdigit
फलन प्रयोग गरेर, प्रत्येक अक्षर वैध hexadecimal अक्षर (0-9, A-F, a-f) हो कि जाँच गर्नुहोस्।
- दशमलव इनपुटको त्रुटि प्रक्रिया:
- इनपुट संख्या बाहेकको भए त्रुटि सन्देश देखाइ, पुनः इनपुटको लागि अनुरोध गर्ने प्रक्रिया थप्न सकिन्छ।
अनन्त लूपको रोकथाम
यदि कार्यक्रमले समाप्ति शर्त स्पष्ट नगरेमा, अनन्त लूप हुन सक्छ। यस कार्यक्रममा विकल्प “3” द्वारा सही रूपमा समाप्ति गरिन्छ।
कार्यक्रमको विस्तार प्रस्ताव
तलका सुविधाहरू थपेर, अझ उपयोगी कार्यक्रममा विस्तार गर्न सकिन्छ।
- द्विआधारी र अष्टाधारी रूपान्तरण सुविधा
- रूपान्तरण आधार चयन गर्न मेनु थप्नुहोस्।
- अंक संख्या निर्दिष्ट गरेर रूपान्तरण परिणामलाई ढाँचा बनाउनुहोस्
- आउटपुटलाई निश्चित अंक संख्यामा स्वरूपित गर्ने विकल्प थप्नुहोस्।
- लग फाइलमा रेकर्ड
- रूपान्तरण परिणामलाई लगको रूपमा फाइलमा बचत गर्नुहोस्।
सारांश
यो नमुना कार्यक्रमले दशमलव र hexadecimal को आपसी रूपान्तरणलाई सजिलै गर्न सक्ने व्यावहारिक उदाहरण हो। प्रयोगकर्ता इनपुटलाई समर्थन गर्दछ, त्रुटि ह्यान्डलिंग पनि विचार गरिएको छ, त्यसैले शुरुआतीहरू पनि सुरक्षित रूपमा प्रयोग गर्न सक्छन्।

5. सावधानीहरू र सर्वश्रेष्ठ अभ्यासहरू
फरम्याट निर्दिष्टकर्ता प्रयोग सम्बन्धी सावधानी
अंक संख्या मिलाएर आउटपुट
printf
फङ्क्शनलाई प्रयोग गरेर हेक्साडेसिमल आउटपुट गर्दा, फारम्याट निर्दिष्टकर्तालाई उपयुक्त रूपमा सेट गरेर अंक संख्या मिलाउन वा सुरुमा शून्य थप्न सकिन्छ।
#include <stdio.h>
int main() {
int number = 255;
printf("4 अङ्कको १६-आधार: %04Xn", number); // आउटपुट: 00FF
return 0;
}
%04X
: 4 अंकको ठूला अक्षरको हेक्साडेसिमल आउटपुट गर्छ, अभाव भागलाई 0 ले भरिन्छ।- यो ढाँचा प्रयोग गरेर, फारम्याट मिलेर हेर्न सजिलो आउटपुट प्राप्त गर्न सकिन्छ।
ठूला अक्षर र साना अक्षरको चयन
हेक्साडेसिमल आउटपुट ठूला अक्षर(%X
)र साना अक्षर(%x
)दुबैमा सम्भव छ। आवश्यक अनुसार प्रयोग गरेर, देखावट र प्रयोग अनुसार लचिलो आउटपुट प्राप्त गर्न सकिन्छ।
इनपुट मानको प्रमाणीकरण
दशमलव इनपुट
प्रयोगकर्ताले अवैध मान इनपुट गर्ने सम्भावना भएकोले, त्रुटि ह्यान्डलिङ थपेर कार्यक्रमको विश्वसनीयता बढाउन सकिन्छ।
#include <stdio.h>
int main() {
int number;
printf("10 दशमलव संख्या प्रविष्ट गर्नुहोस्: ");
if (scanf("%d", &number) != 1) {
printf("अवैध इनपुट हो।n");
return 1;
}
printf("प्रविष्ट गरिएको मान: %dn", number);
return 0;
}
हेक्साडेसिमल इनपुट
हेक्साडेसिमल स्ट्रिङलाई इनपुटको रूपमा लिँदा, इनपुट मान वैध छ कि छैन जाँच्नु महत्त्वपूर्ण छ।
#include <ctype.h>
#include <stdio.h>
#include <string.h>
int isValidHex(const char *hex) {
for (int i = 0; i < strlen(hex); i++) {
if (!isxdigit(hex[i])) {
return 0; // अमान्य अक्षर समावेश गर्दछ
}
}
return 1; // वैध 16-आधार संख्या
}
int main() {
char hex[20];
printf("16-आधार संख्या प्रविष्ट गर्नुहोस्: ");
scanf("%s", hex);
if (!isValidHex(hex)) {
printf("अमान्य 16-आधार संख्या हो।n");
return 1;
}
printf("प्रविष्ट गरिएको 16-आधार संख्या वैध छ।n");
return 0;
}
नकारात्मक संख्या र ओभरफ्लोको प्रक्रिया
नकारात्मक संख्याको ह्यान्डलिङ
नकारात्मक संख्या ह्यान्डल गर्दा, साइन गरिएको प्रकार(int
वाlong
)मा निर्भर हुन्छ। हेक्साडेसिमलमा नकारात्मक संख्या आउटपुट गर्दा, आन्तरिक रूपमा 2 को पूरक प्रतिनिधित्व प्रयोग गरिन्छ।
#include <stdio.h>
int main() {
int number = -255;
printf("16-आधार (नकारात्मक संख्या): %Xn", number); // आउटपुट 2 को पूरक प्रतिनिधित्व हो
return 0;
}
ओभरफ्लोको रोकथाम
ठूलो मानहरू ह्यान्डल गर्दा, प्रकारको अधिकतम सीमा नपार्न ध्यान दिनु आवश्यक छ। C भाषामा, तलका हेडरहरूबाट प्रकारको दायरा जाँच्न सकिन्छ।
#include <limits.h>
#include <stdio.h>
int main() {
printf("int को अधिकतम मान: %dn", INT_MAX);
printf("int को न्यूनतम मान: %dn", INT_MIN);
return 0;
}
उपयुक्त प्रकार चयन गरेर, ओभरफ्लोको जोखिम घटाउन सकिन्छ। उदाहरणका लागि, अत्यन्त ठूलो मान ह्यान्डल गर्दाlong long
प्रकार प्रयोग गर्न सिफारिस गरिन्छ।
पठनीयता र मर्मत सम्भावनालाई सुधार्ने उपायहरू
टिप्पणी र नामकरण नियम
- फङ्क्शन र भेरिएबलहरूलाई अर्थपूर्ण नाम दिनु, टिप्पणीहरू उपयुक्त रूपमा थप्नुले कोडको पठनीयता सुधार्छ।
मानक फङ्क्शनको उपयोग
- हातले आधार परिवर्तन सिकाइका लागि उपयोगी भए पनि, व्यावहारिक काममा मानक फङ्क्शनहरू(
printf
वाstrtol
आदि)लाई प्राथमिकता दिएर प्रयोग गर्दा कोडको मर्मत सम्भावना बढाउन सकिन्छ।
कार्यक्रमको परीक्षण
टेस्ट केसको महत्त्व
आधार परिवर्तन कार्यक्रम बनाउँदा, तलका केसहरू परीक्षण गर्नु महत्त्वपूर्ण छ।
- सही इनपुट(उदाहरण: दशमलव
255
→ हेक्साडेसिमलFF
) - अवैध इनपुट(उदाहरण: स्ट्रिङ
ABC
लाई दशमलवको रूपमा इनपुट) - सीमा मान(उदाहरण: अधिकतम मान
INT_MAX
、न्यूनतम मानINT_MIN
) - नकारात्मक संख्या वा शून्यको इनपुट
टेस्ट सञ्चालन गरेर, कार्यक्रमको विश्वसनीयता बढाउन सकिन्छ।
6. FAQ(सामान्य प्रश्न)
printf कार्यले 16-आधारको आउटपुटको सुरुमा “0x” कसरी थप्ने?
उत्तर:
सुरुमा “0x” थप्नको लागि, फर्म्याट स्पेसिफायरको अगाडि “0x” लाई स्ट्रिङको रूपमा स्पष्ट रूपमा थप्नुहोस्।
कोड उदाहरण:
#include <stdio.h>
int main() {
int number = 255;
printf("16-आधार (0x सहित): 0x%Xn", number); // आउटपुट: 0xFF
return 0;
}
टिप्पणी:
“0x” 16-आधारलाई दर्शाउने मानक प्रिफिक्स हो। उदाहरणका लागि, रंग कोड वा मेमोरी एड्रेससँग काम गर्दा प्रायः प्रयोग गरिन्छ।
strtol कार्यले अवैध स्ट्रिङलाई रूपान्तरण गर्ने प्रयास गर्दा के हुन्छ?
उत्तर:
strtol
कार्यले, स्ट्रिङ अवैध भए पनि त्रुटि फ्याँक्दैन, र सम्भव भाग मात्र रूपान्तरण गर्छ। रूपान्तरण गर्न नसक्ने अक्षर देखिएमा, त्यसपछिको स्ट्रिङलाई बेवास्ता गर्छ।
कोड उदाहरण:
#include <stdio.h>
#include <stdlib.h>
int main() {
char hexString[] = "FFG12";
char *endptr;
long number = strtol(hexString, &endptr, 16);
printf("परिवर्तित मान: %ldn", number);
printf("परिवर्तित गर्न नसकिएको भाग: %sn", endptr); // आउटपुट: G12
return 0;
}
आउटपुट उदाहरण:
परिवर्तित मान: 255
परिवर्तित गर्न नसकिएको भाग: G12
printf कार्य बिना 10-आधारलाई 16-आधारमा रूपान्तरण कसरी गर्ने?
उत्तर:
बिट अपरेसन प्रयोग गरेर म्यानुअल रूपमा रूपान्तरण गर्न सकिन्छ। यो विधि आधार रूपान्तरणको आन्तरिक तर्क बुझ्न मद्दत गर्छ।
कोड उदाहरण:
#include <stdio.h>
void decimalToHex(int decimal) {
char hex[20];
int index = 0;
while (decimal > 0) {
int remainder = decimal % 16;
hex[index++] = (remainder < 10) ? '0' + remainder : 'A' + (remainder - 10);
decimal /= 16;
}
printf("16進数: ");
for (int i = index - 1; i >= 0; i--) {
printf("%c", hex[i]);
}
printf("n");
}
int main() {
int number = 255;
decimalToHex(number);
return 0;
}
scanf कार्यले अंकसंख्यालाई सीमित गरेर इनपुट कसरी लिने?
उत्तर:
scanf
कार्यको फर्म्याट स्पेसिफायरमा अंकसंख्या निर्दिष्ट गरेर इनपुट क्यारेक्टर संख्या सीमित गर्न सकिन्छ।
कोड उदाहरण:
#include <stdio.h>
int main() {
char hex[5]; // अधिकतम 4 अङ्कको इनपुट स्वीकार गर्दछ
printf("कृपया अधिकतम 4 अङ्कको 16-आधारित संख्या प्रविष्ट गर्नुहोस्: ");
scanf("%4s", hex);
printf("प्रविष्ट गरिएको मान: %sn", hex);
return 0;
}
टिप्पणी:
फर्म्याट स्पेसिफायर%4s
ले अधिकतम 4 क्यारेक्टरको स्ट्रिङलाई इनपुटको रूपमा स्वीकार गर्ने सेटिङ हो।
अन्य आधारहरू (उदाहरण: 2-आधार वा 8-आधार) मा रूपान्तरण कसरी गर्ने?
उत्तर:
printf
कार्य प्रयोग गरेर, अन्य आधारहरूमा रूपान्तरण पनि सम्भव छ। आधार अनुसार उपयुक्त फर्म्याट स्पेसिफायर वा तर्क प्रयोग गरिन्छ।
कोड उदाहरण: 2-आधारमा रूपान्तरण
#include <stdio.h>
void decimalToBinary(int decimal) {
char binary[32];
int index = 0;
while (decimal > 0) {
binary[index++] = (decimal % 2) + '0';
decimal /= 2;
}
printf("बाइनरी: ");
for (int i = index - 1; i >= 0; i--) {
printf("%c", binary[i]);
}
printf("n");
}
int main() {
int number = 255;
decimalToBinary(number);
return 0;
}
ठूला अक्षरको 16-आधारलाई साना अक्षरमा रूपान्तरण कसरी गर्ने?
उत्तर:
C भाषा को मानक लाइब्रेरीमा समावेश गरिएकोtolower
कार्य प्रयोग गर्दा, ठूला अक्षरको 16-आधारलाई साना अक्षरमा रूपान्तरण गर्न सकिन्छ।
कोड उदाहरण:
#include <stdio.h>
#include <ctype.h>
#include <string.h>
void toLowercase(char *hex) {
for (int i = 0; i < strlen(hex); i++) {
hex[i] = tolower(hex[i]);
}
}
int main() {
char hex[] = "FF";
toLowercase(hex);
printf("छोटा अक्षरको १६-आधार संख्या: %sn", hex);
return 0;
}
आउटपुट उदाहरण:
छोटा अक्षरको १६-आधार: ff
16-आधारमा शून्य-भरेको स्वरूपमा आउटपुट कसरी गर्ने?
उत्तर:
printf
कार्यको फर्म्याट स्पेसिफायरमा अंकसंख्या निर्दिष्ट गरेर शून्य-भरेको स्वरूपमा आउटपुट गर्न सकिन्छ।
कोड उदाहरण:
#include <stdio.h>
int main() {
int number = 15;
printf("शून्य भरेको 4 अङ्कको 16-आधार संख्या: %04Xn", number); // आउटपुट: 000F
return 0;
}
7. सारांश
यस लेखमा, सी भाषा प्रयोग गरेर दशमलव र षोडशमलव को आपसी रूपान्तरणको बारेमा, आधारभूतदेखि व्यावहारिक नमुना कोड, ध्यान दिनुपर्ने बुँदा, FAQ सम्मलाई समग्र रूपमा व्याख्या गरिएको छ। तल, महत्वपूर्ण बुँदाहरूलाई पुनरावलोकन गरिन्छ।
लेखका मुख्य बुँदाहरू
आधार (अंक प्रणाली) को आधारभूत अवधारणा
- दशमलव हाम्रो दैनिकी प्रयोग हुने संख्यात्मक लेखन हो, र षोडशमलव विशेष प्रयोजनहरू (उदाहरण: मेमोरी एड्रेस वा रङ्ग कोड) मा प्रायः प्रयोग हुने लेखन हो।
- सी भाषामा, संख्याहरूलाई विभिन्न अंक प्रणालीहरूमा ह्यान्डल गर्न लचिलो तरिका उपलब्ध गराइन्छ।
१० अंक प्रणालीबाट १६ अंक प्रणालीमा रूपान्तरण
printf
र @sprintf
कार्यहरू प्रयोग गरेर, सजिलो र प्रभावकारी रूपमा रूपान्तरण गर्न सकिन्छ।- बिट गणनालाई प्रयोग गरेर म्यानुअल रूपान्तरणको विधि पनि प्रस्तुत गरिएको छ। यो अंक प्रणाली रूपान्तरणको तर्क बुझ्न उपयोगी छ।
१६ अंक प्रणालीबाट १० अंक प्रणालीमा रूपान्तरण
scanf
र @strtol
कार्यहरू प्रयोग गरेर, स्ट्रिङ स्वरूपको षोडशमलव लाई दशमलव मा रूपान्तरण गर्न सकिन्छ।- अवैध इनपुट र त्रुटि ह्यान्डलिङ्ग समावेश गरेर, अझ राम्रो प्रोग्राम बनाउन सकिन्छ।
व्यावहारिक प्रोग्राम उदाहरणहरू
- द्विदिश रूपान्तरण प्रोग्राम मार्फत, प्रयोगकर्ता इनपुटलाई प्रक्रिया गरी, दशमलव र षोडशमलव को आपसी रूपान्तरण हासिल गरिएको छ।
- त्रुटि ह्यान्डलिङ्ग समावेश गरेर, गलत इनपुटलाई कसरी ह्यान्डल गर्ने विधि पनि व्याख्या गरिएको छ।
ध्यान दिनुपर्ने बुँदाहरू र उत्कृष्ट अभ्यासहरू
- फर्म्याट निर्देशकहरूको प्रयोग विधि, तथा ठूला अक्षर・साना अक्षर को चयन जस्ता, आउटपुटको स्वरूपलाई सुन्दर बनाउने तरिका व्याख्या गरिएको छ।
- फ्लोको संख्या र ओभरफ्लो मा ध्यान दिँदै, ढाँचाको चयन र सीमाको जाँचलाई कडाइका साथ गर्ने महत्त्व देखाइएको छ।
सामान्य प्रश्नहरू (FAQ)
- व्यावहारिक प्रश्नहरू (उदाहरण: @
printf
मा “0x” जोड्ने तरिका, अवैध इनपुटको प्रक्रिया) को लागि, उदाहरण प्रयोग गरेर व्याख्या गरिएको छ। - अन्य अंक प्रणालीहरू (द्विआधारी र अष्टाधारी) मा लागू गर्ने तरिकाबारे पनि उल्लेख गरिएको छ।
लेख मार्फत प्राप्त हुने कुराहरू
यो लेख पढेर, पाठकले तलका बुँदाहरू सिक्ने र व्यावहारिक रूपमा लागू गर्ने क्षमता प्राप्त गर्नेछन्।
- सी भाषामा अंक प्रणाली रूपान्तरणको आधारभूत अवधारणा र प्रयोग
- चलाउन योग्य कोड प्रयोग गरेर अंक प्रणाली रूपान्तरणको कार्यान्वयन
- इनपुट प्रमाणीकरण र त्रुटि ह्यान्डलिङ्ग समावेश गर्ने राम्रो प्रोग्राम निर्माण
भविष्यको सिकाइका लागि
अझै गहिरो बुझ्नका लागि, तलका विषयहरू सिक्न सिफारिस गरिन्छ।
- अन्य अंक प्रणालीहरू (द्विआधारी र अष्टाधारी) मा रूपान्तरण गर्ने तरिका
- सी भाषा बाहेकका प्रोग्रामिङ भाषाहरूमा अंक प्रणाली रूपान्तरणको कार्यान्वयन
- मेमोरी व्यवस्थापन र बाइनरी सञ्चालनसँग सम्बन्धित ज्ञान
यो लेखको सामग्रीले सी भाषा सिक्ने नयाँ वा अंक प्रणाली रूपान्तरण गर्ने प्रोग्रामरहरूका लागि व्यावहारिक र उपयोगी गाइड बन्न सकोस् भन्ने आशा छ। यसलाई सन्दर्भ गरी, अझ प्रयोगात्मक प्रोग्राम निर्माणमा चुनौती लिनुहोस्।