C/C++

Задача по программированию!!!

Напишите программу, которая запрашивает число в шестнадцатеричной системе счисления и выводит его двоичную запись. Каждой шестнадцатеричной цифре соответствуют четыре двоичных цифры:

0 0000 8 1000

1 0001 9 1001

2 0010 A 1010

3 0011 B 1011

4 0100 C 1100

5 0101 D 1101

6 0110 E 1110

7 0111 F 1111

Sample Input 1:


AF0

Sample Output 1:


101011110000

Sample Input 2:


73E

Sample Output 2:


011100111110

Sample Input 3:


BCDBFEDFABAABCCDDAFFED

Sample Output 3:


1011110011011011111111101101111110101011101010101011110011001101110110101111111111101101
#include <iostream>
#include <string>
#include <cstdlib>

using namespace std;

void print2(string str)
{
for(int x = 0; x < str.length(); x++)
{
switch(str[x])
{
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:
cerr << "Error!" << endl;
exit(1);
break;
}
}
cout << endl;
}

int main()
{
string S;
cin >> S;
print2(S);
return 0;
}
НБ
Николай Беляков
83 212
Лучший ответ
Как я понял, ведущие нули допускаются.

#include "iostream"
#include "iomanip"
#include "bitset"
using namespace std;
int main() {
cin.unsetf(ios::dec); cin.setf(ios::hex); unsigned long bin;
cout << "Hexadecimal number (max 8 digits): "; cin >> bin;
cout << "Binary: " << bitset<32>(bin) << endl;}
Сделал, правда на js. Тренируюсь
Илья Альбощий
Илья Альбощий
5 330