কম্পিউটার

সি প্রোগ্রামে হেক্সাডেসিমেলকে অক্টালে রূপান্তর করার প্রোগ্রাম


স্ট্রিং হিসাবে আমাদের একটি হেক্সাডেসিমেল সংখ্যা দেওয়া হয়েছে; কাজটি হল এটিকে অক্টালে রূপান্তর করা। একটি হেক্সাডেসিমেল সংখ্যাকে অক্টালে রূপান্তর করতে, আমাদের −

করতে হবে
  • হেক্সাডেসিমেল সংখ্যার সমতুল্য বাইনারি খুঁজুন।
  • বাইনারী সংখ্যাকে অক্টালে রূপান্তর করুন।

হেক্সাডেসিমেল সংখ্যা কি

হেক্সাডেসিমেল সংখ্যা হল সেই সংখ্যা যেগুলি 16 এর ভিত্তির সংখ্যাগুলি 0-9 এর মধ্যে পরিবর্তিত হয় এবং 10 এর পর থেকে সংখ্যাগুলি A হিসাবে উপস্থাপিত হয় যা 10 এর জন্য B, 11 এর জন্য C, 12 এর জন্য D, 13 এর জন্য E, 14 এর জন্য E এবং F। 15 এর জন্য।

হেক্সাডেসিমেল সংখ্যাকে বাইনারি সংখ্যায় রূপান্তর করতে প্রতিটি সংখ্যাকে তার 4 বিটের বাইনারি সমতুল্য রূপান্তর করা হয় এবং তারপরে এই সংখ্যাগুলিকে একত্রিত করে একটি সংশ্লিষ্ট বাইনারি সংখ্যা তৈরি করা হয়।

অক্টাল সংখ্যা কি

কম্পিউটারে অক্টাল সংখ্যাগুলিকে ভিত্তি 8 দিয়ে উপস্থাপন করা হয়, যা 0-7 অক্টাল সংখ্যাগুলি তিনটি বাইনারি সংখ্যা বা তিনটি বাইনারি সংখ্যার গ্রুপিং দ্বারা তৈরি করা হয়৷

আমাদের যা করতে হবে

যেমন আমাদের একটি হেক্সাডেসিমেল সংখ্যা 1A6 আছে তাই এর অর্থ এখন 1, 10 এবং 6 হেক্সাডেসিমেল থেকে অক্টালের জন্য প্রথমে আমাদের একটি হেক্সাডেসিমেল সংখ্যার বাইনারি সমতুল্য খুঁজে বের করতে হবে অর্থাৎ,

সি প্রোগ্রামে হেক্সাডেসিমেলকে অক্টালে রূপান্তর করার প্রোগ্রাম

সুতরাং, 1A6 এর বাইনারি =0001 1010 0110

এখন হেক্সাডেসিমেল সংখ্যার বাইনারি খুঁজে বের করার পর এখন পরবর্তী কাজ হল বাইনারি সংখ্যার অক্টাল বের করা।

তার আগে আমরা বাইনারি সংখ্যাকে তিনটিতে গ্রুপ করব। 3 তে গ্রুপ করার পরে আমরা পাব 000 110 100 110

যার অক্টাল প্রতিনিধিত্ব হবে −

সি প্রোগ্রামে হেক্সাডেসিমেলকে অক্টালে রূপান্তর করার প্রোগ্রাম

সুতরাং হেক্সাডেসিমেল সংখ্যা 1A6 এর অক্টাল উপস্থাপনা হল − 646

উদাহরণ

Input: 1A6
Output: Octal Value = 646
Explanation:

Input: 1AA
Output: 652

প্রদত্ত সমস্যার সমাধান করার জন্য আমরা যে পদ্ধতি ব্যবহার করব −

  • ইনপুট নেওয়া এবং একটি স্ট্রিং হিসাবে সংরক্ষণ করা।
  • নিম্নলিখিত পদ্ধতি অনুসরণ করে হেক্সাডেসিমেল সংখ্যা বা রাশিকে বাইনারিতে রূপান্তর করুন -
    • হেক্সাডেসিমেলের 16টি ক্ষেত্রেই তাদের নিজ নিজ বাইনারি উপস্থাপনা যোগ করে চেক করুন।
    • ফলাফল ফেরত দিন।
  • বাইনারি সংখ্যাকে অক্টাল সংখ্যায় রূপান্তর করুন নিম্নলিখিত ধাপগুলি অনুসরণ করুন −
    • বাইনারি সংখ্যার সম্ভাব্য সকল ক্ষেত্রে অক্টালের সাথে তুলনা করে ৩টি স্থান নিন।
    • অক্টাল =(ভাল * স্থান) + অক্টালের মান সেট করুন;
    • বাইনারী সংখ্যাকে 1000 দ্বারা ভাগ করুন
    • স্থান *=10
  • ফলাফল ফেরত দিন।

অ্যালগরিদম

Start
Step 1-> In function long long int hexa_binary(char hex[])
   Declare variables binary, place
   Declare and initialize i = 0, rem, val
   Initialize t n = strlen(hex)
   Initialize binary = 0ll and place = 0ll
   Loop For i = 0 and hex[i] != '\0' and i++ {
      binary = binary * place;
      switch (hex[i]) {
         case '0':
            binary += 0
         case '1':
            binary += 1
         case '2':
            binary += 10
         case '3':
            binary += 11
         case '4':
            binary += 100
         case '5':
            binary += 101
         case '6':
            binary += 110
         case '7':
            binary += 111
         case '8':
            binary += 1000
         case '9':
            binary += 1001
         case 'a':
         case 'A':
            binary += 1010
         case 'b':
         case 'B':
            binary += 1011
         case 'c':
         case 'C':
            binary += 1100
         case 'd':
         case 'D':
            binary += 1101;
            break;
         case 'e':
         case 'E':
            binary += 1110;
            break;
         case 'f':
         case 'F':
            binary += 1111;
            break;
         default:
            printf("Invalid hexadecimal input.");
      }
      place = 10000;
   }
   return binary;
}
long long int binary_oct(long long binary) {
   long long int octal, place;
   int i = 0, rem, val;
   octal = 0ll;
   place = 0ll;
   place = 1;
   while (binary > 0) {
      rem = binary % 1000;
      switch (rem) {
      case 0:
         val = 0;
         break;
      case 1:
         val = 1;
         break;
      case 10:
         val = 2;
         break;
      case 11:
         val = 3;
         break;
      case 100:
         val = 4;
         break;
      case 101:
         val = 5;
         break;
      case 110:
         val = 6;
         break;
      case 111:
         val = 7;
         break;
      }
      octal = (val * place) + octal;
      binary /= 1000;
      place *= 10;
   }
   return octal;
}
long long int hexa_oct(char hex[]) {
   long long int octal, binary;
   // convert HexaDecimal to Binary
   binary = hexa_binary(hex);
   // convert Binary to Octal
   octal = binary_oct(binary);
   return octal;
}
int main() {
   char hex[20] = "1a99";
   printf("Octal Value = %lld", hexa_oct(hex));
   return 0;
}

উদাহরণ

#include <stdio.h>
#include <string.h>
#include <math.h>
//To convert hex to binary first
long long int hexa_binary(char hex[]) {
   long long int binary, place;
   int i = 0, rem, val;
   int n = strlen(hex);
   binary = 0ll;
   place = 0ll;
   for (i = 0; hex[i] != '\0'; i++) {
      binary = binary * place;
      switch (hex[i]) {
      case '0':
         binary += 0;
         break;
      case '1':
         binary += 1;
         break;
      case '2':
         binary += 10;
         break;
      case '3':
         binary += 11;
         break;
      case '4':
         binary += 100;
         break;
      case '5':
         binary += 101;
         break;
      case '6':
         binary += 110;
         break;
      case '7':
         binary += 111;
         break;
      case '8':
         binary += 1000;
         break;
      case '9':
         binary += 1001;
         break;
      case 'a':
      case 'A':
         binary += 1010;
         break;
      case 'b':
      case 'B':
         binary += 1011;
         break;
      case 'c':
      case 'C':
         binary += 1100;
         break;
      case 'd':
      case 'D':
         binary += 1101;
         break;
      case 'e':
      case 'E':
         binary += 1110;
         break;
      case 'f':
      case 'F':
         binary += 1111;
         break;
      default:
         printf("Invalid hexadecimal input.");
      }
      place = 10000;
   }
   return binary;
}
//To convert binary to octal
long long int binary_oct(long long binary) {
   long long int octal, place;
   int i = 0, rem, val;
   octal = 0ll;
   place = 0ll;
   place = 1;
   // giving all binary numbers for octal conversion
   while (binary > 0) {
      rem = binary % 1000;
      switch (rem) {
      case 0:
         val = 0;
         break;
      case 1:
         val = 1;
         break;
      case 10:
         val = 2;
         break;
      case 11:
         val = 3;
         break;
      case 100:
         val = 4;
         break;
      case 101:
         val = 5;
         break;
      case 110:
         val = 6;
         break;
      case 111:
         val = 7;
         break;
      }
      octal = (val * place) + octal;
      binary /= 1000;
      place *= 10;
   }
   return octal;
}
// to convert the hexadecimal number to octal
long long int hexa_oct(char hex[]) {
   long long int octal, binary;
   // convert HexaDecimal to Binary
   binary = hexa_binary(hex);
   // convert Binary to Octal
   octal = binary_oct(binary);
   return octal;
}
//main function
int main() {
   char hex[20] = "5CD";
   printf("Octal Value = %lld", hexa_oct(hex));
   return 0;
}

আউটপুট

Octal Value = 2715

  1. ধূসর কোডকে বাইনারিতে রূপান্তর করতে পাইথন প্রোগ্রাম

  2. পাইথন প্রোগ্রামে দশমিককে বাইনারি নম্বরে রূপান্তর করুন

  3. ফ্লোটিংকে বাইনারিতে রূপান্তর করতে পাইথন প্রোগ্রাম

  4. পাইথন ব্যবহার করে দশমিককে কীভাবে বাইনারি, অক্টাল এবং হেক্সাডেসিমেলে রূপান্তর করবেন?