Chuyển số thập lục phân (hex) sang nhị phân (binary). Hex cơ số 16 (0-9, A-F), binary cơ số 2 (0,1). Mỗi chữ số hex chuyển thành 4 bit nhị phân rồi nối lại.
Ví dụ
Input: 123B 1 → 0001, 2 → 0010, 3 → 0011, B(11) → 1011 Output: 0001001000111011
Thuật toán
BẮT ĐẦU
Hàm chuyenDoi(string hexa)
i = 0
While(hexa[i])
Switch(hexa[i])
case '0': in "0000"; break;
case '1': in "0001"; break;
... case 'F'/'f': in "1111"; break;
default: in "ký tự không hợp lệ"
i++
main()
hexa = "123B"
Gọi chuyenDoi(hexa)
KẾT THÚC
Ví dụ mã C++
#include <bits/stdc++.h>
#include<string.h>
using namespace std;
void chuyenDoi(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 << "\nKý tự hex không hợp lệ: " << hexa[i];
}
i++;
}
}
int main(){
string hexa = "123B";
cout << "\nGiá trị nhị phân tương đương: ";
chuyenDoi(hexa);
return 0;
}
Kết quả đầu ra
Giá trị nhị phân tương đương: 0001001000111011