#include <iostream>
#include <iomanip>
using namespace std;
constexpr const char * convert(char hx)
{
constexpr const char * hex[16] = {
"0000","0001","0010","0011",
"0100","0101","0110","0111",
"1000","1001","1010","1011",
"1100","1101","1110","1111" };
if (hx >= '0' && hx <= '9') return hex[hx-'0'];
else if (hx >= 'A' && hx <= 'F') return hex[hx-'A'+10];
else if (hx >= 'a' && hx <= 'f') return hex[hx-'a'+10];
return nullptr;
}
int main(int argc, const char * argv[])
{
constexpr auto x = convert('F'); // x = "1111"
cout << x << endl;
char y = '1';
const auto z = convert(y);
cout << z << endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdGV4cHIgY29uc3QgY2hhciAqIGNvbnZlcnQoY2hhciBoeCkKewogICAgY29uc3RleHByIGNvbnN0IGNoYXIgKiBoZXhbMTZdID0gewogICAgICAgICIwMDAwIiwiMDAwMSIsIjAwMTAiLCIwMDExIiwKICAgICAgICAiMDEwMCIsIjAxMDEiLCIwMTEwIiwiMDExMSIsCiAgICAgICAgIjEwMDAiLCIxMDAxIiwiMTAxMCIsIjEwMTEiLAogICAgICAgICIxMTAwIiwiMTEwMSIsIjExMTAiLCIxMTExIiB9OwogICAgaWYgKGh4ID49ICcwJyAmJiBoeCA8PSAnOScpIHJldHVybiBoZXhbaHgtJzAnXTsKICAgIGVsc2UgaWYgKGh4ID49ICdBJyAmJiBoeCA8PSAnRicpIHJldHVybiBoZXhbaHgtJ0EnKzEwXTsKICAgIGVsc2UgaWYgKGh4ID49ICdhJyAmJiBoeCA8PSAnZicpIHJldHVybiBoZXhbaHgtJ2EnKzEwXTsKICAgIHJldHVybiBudWxscHRyOwp9CgoKCmludCBtYWluKGludCBhcmdjLCBjb25zdCBjaGFyICogYXJndltdKQp7CiAgICBjb25zdGV4cHIgYXV0byB4ID0gY29udmVydCgnRicpOyAvLyB4ID0gIjExMTEiCiAgICBjb3V0IDw8IHggPDwgZW5kbDsKICAgIGNoYXIgeSA9ICcxJzsKICAgIGNvbnN0IGF1dG8geiA9IGNvbnZlcnQoeSk7CiAgICBjb3V0IDw8IHogPDwgZW5kbDsKfQo=