Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรมแปลงเลขฐานสิบหกเป็นฐานสองใน C++


ให้เลขฐานสิบหก (Hexadecimal) เป็นอินพุต งานคือแปลงเลขฐานสิบหกนั้นเป็นเลขฐานสอง (Binary)

เลขฐานสิบหกในคอมพิวเตอร์มีฐาน 16 และเลขฐานสองมีฐาน 2 มีตัวเลขแค่ 0 และ 1 ส่วนเลขฐานสิบหกมีตัวเลข 0-15 โดย 10 แทนด้วย A, 11 เป็น B, 12 เป็น C, 13 เป็น D, 14 เป็น E, 15 เป็น F

เพื่อแปลงเลขฐานสิบหกเป็นฐานสอง ทุกตัวเลขจะแปลงเป็น binary 4 บิต แล้วนำมารวมกันเป็นเลขฐานสองตัวเดียว

ตัวอย่าง

Input-: 123B   1 จะมี binary 4 ตัว -: 0001   2 จะมี binary 4 ตัว -: 0010   3 จะมี binary 4 ตัว -: 0011   B(11) จะมี binary 4 ตัว -: 1011 Output-: 0001001000111011

อัลกอริทึม

Start Step 1 -> declare function to convert Hexadecimal to Binary Number   void convert(string hexa)   Declare variable as long int i = 0   Loop While(hexa[i])     Use Switch (hexa[i])       case '0':         print "0000"         break;       case '1':         print "0001"         break;       case '2':         print "0010"         break;       case '3':         print "0011"         break;       case '4':         print "0100"         break;       case '5':         print "0101"         break;       case '6':         print "0110"         break;       case '7':         print "0111"         break;       case '8':         print "1000"         break;       case '9':         print "1001"         break;       case 'A':       case 'a':         print "1010"         break;       case 'B':       case 'b':         print "1011"         break;       case 'C':       case 'c':         print "1100"         break;       case 'D':       case 'd':         print "1101"         break;       case 'E':       case 'e':         print "1110"         break;       case 'F':       case 'f':         print "1111"         break;       default:         print please enter valid hexadecimal digit     End     i++   End Step 2 -> In main()   Declare string hexa = "123B"   Print convert(hexa); Stop

ตัวอย่าง

#include <bits/stdc++.h> #include<string.h> using namespace std; // convert Hexadecimal to Binary Number void convert(string hexa){   long int i = 0;   while (hexa[i]){     switch (hexa[i]){     case '0':       cout << "0000";       break;     case '1':       cout << "0001";       break;     case '2':       cout << "0010";       break;     case '3':       cout << "0011";       break;     case '4':       cout << "0100";       break;     case '5':       cout << "0101";       break;     case '6':       cout << "0110";       break;     case '7':       cout << "0111";       break;     case '8':       cout << "1000";       break;     case '9':       cout << "1001";       break;     case 'A':     case 'a':       cout << "1010";       break;     case 'B':     case 'b':       cout << "1011";       break;     case 'C':     case 'c':       cout << "1100";       break;     case 'D':     case 'd':       cout << "1101";       break;     case 'E':     case 'e':       cout << "1110";       break;     case 'F':     case 'f':       cout << "1111";       break;     default:       cout << "\please enter valid hexadecimal digit "<< hexa[i];     }   i++;   } } int main(){   string hexa = "123B";   cout << "\nEquivalent Binary value is : ";     convert(hexa);   return 0; }

ผลลัพธ์

Equivalent Binary value is : 0001001000111011