Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <fstream>
- #include <sstream>
- using namespace std;
- string hex_to_blin(string hex_in, int& bcount)
- {
- string blin = "";
- for (int i = 0; i < hex_in.length(); i++)
- {
- if (hex_in[i] == '0') blin += "0000";
- if (hex_in[i] == '1') blin += "0001";
- if (hex_in[i] == '2') blin += "0010";
- if (hex_in[i] == '3') blin += "0011";
- if (hex_in[i] == '4') blin += "0100";
- if (hex_in[i] == '5') blin += "0101";
- if (hex_in[i] == '6') blin += "0110";
- if (hex_in[i] == '7') blin += "0111";
- if (hex_in[i] == '8') blin += "1000";
- if (hex_in[i] == '9') blin += "1001";
- if (hex_in[i] == 'A') blin += "1010";
- if (hex_in[i] == 'B') blin += "1011";
- if (hex_in[i] == 'C') blin += "1100";
- if (hex_in[i] == 'D') blin += "1101";
- if (hex_in[i] == 'E') blin += "1110";
- if (hex_in[i] == 'F') blin += "1111";
- bcount++;
- }
- return blin;
- }
- string blin_to_hex(string blin_in)
- {
- string hex = "";
- for (int i = 0; i < blin_in.length() / 4; i++)
- {
- string sub = blin_in.substr(i * 4, 4);
- if (sub == "0000") hex += "0";
- if (sub == "0001") hex += "1";
- if (sub == "0010") hex += "2";
- if (sub == "0011") hex += "3";
- if (sub == "0100") hex += "4";
- if (sub == "0101") hex += "5";
- if (sub == "0110") hex += "6";
- if (sub == "0111") hex += "7";
- if (sub == "1000") hex += "8";
- if (sub == "1001") hex += "9";
- if (sub == "1010") hex += "A";
- if (sub == "1011") hex += "B";
- if (sub == "1100") hex += "C";
- if (sub == "1101") hex += "D";
- if (sub == "1110") hex += "E";
- if (sub == "1111") hex += "F";
- }
- return hex;
- }
- string blin_to_UTF8(string blin, int bcount)
- {
- string UTF8;
- if (bcount == 2)
- {
- UTF8 = blin;
- UTF8[0] = '0';
- }
- if (bcount == 4)
- {
- UTF8 = blin;
- UTF8[0] = '1'; UTF8[8] = '1';
- UTF8[1] = '1'; UTF8[9] = '0';
- UTF8[2] = '0';
- }
- if (bcount == 6)
- {
- UTF8 = blin;
- UTF8[0] = '1'; UTF8[8] = '1'; UTF8[16] = '1';
- UTF8[1] = '1'; UTF8[9] = '0'; UTF8[17] = '0';
- UTF8[2] = '1';
- UTF8[3] = '0';
- }
- if (bcount == 8)
- {
- UTF8 = blin;
- UTF8[0] = '1'; UTF8[8] = '1'; UTF8[16] = '1'; UTF8[24] = '1';
- UTF8[1] = '1'; UTF8[9] = '0'; UTF8[17] = '0'; UTF8[25] = '1';
- UTF8[2] = '1';
- UTF8[3] = '1';
- UTF8[4] = '0';
- }
- return UTF8;
- }
- int main()
- {
- char c; cin >> c;
- int char_int = c;
- stringstream ss;
- ss << std::hex << char_int;
- string char_hex = ss.str();
- cout << "hex: " << char_hex << endl;
- int bytecount = 0;
- string char_blin = hex_to_blin(char_hex,bytecount);
- cout << "bin: " << char_blin << ", hex char count: " << bytecount << endl;
- string UTF8_blin = blin_to_UTF8(char_blin, bytecount);
- cout << "UTF8 - bin: " << UTF8_blin;
- string UTF8_hex = blin_to_hex(UTF8_blin);
- cout << ", hex: " << UTF8_hex << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment