Megaddd

UTF8

Jan 7th, 2018
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.77 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <fstream>
  4. #include <sstream>
  5.  
  6. using namespace std;
  7.  
  8. string hex_to_blin(string hex_in, int& bcount)
  9. {
  10. string blin = "";
  11. for (int i = 0; i < hex_in.length(); i++)
  12. {
  13. if (hex_in[i] == '0') blin += "0000";
  14. if (hex_in[i] == '1') blin += "0001";
  15. if (hex_in[i] == '2') blin += "0010";
  16. if (hex_in[i] == '3') blin += "0011";
  17. if (hex_in[i] == '4') blin += "0100";
  18. if (hex_in[i] == '5') blin += "0101";
  19. if (hex_in[i] == '6') blin += "0110";
  20. if (hex_in[i] == '7') blin += "0111";
  21. if (hex_in[i] == '8') blin += "1000";
  22. if (hex_in[i] == '9') blin += "1001";
  23. if (hex_in[i] == 'A') blin += "1010";
  24. if (hex_in[i] == 'B') blin += "1011";
  25. if (hex_in[i] == 'C') blin += "1100";
  26. if (hex_in[i] == 'D') blin += "1101";
  27. if (hex_in[i] == 'E') blin += "1110";
  28. if (hex_in[i] == 'F') blin += "1111";
  29. bcount++;
  30. }
  31. return blin;
  32. }
  33.  
  34. string blin_to_hex(string blin_in)
  35. {
  36. string hex = "";
  37. for (int i = 0; i < blin_in.length() / 4; i++)
  38. {
  39. string sub = blin_in.substr(i * 4, 4);
  40. if (sub == "0000") hex += "0";
  41. if (sub == "0001") hex += "1";
  42. if (sub == "0010") hex += "2";
  43. if (sub == "0011") hex += "3";
  44. if (sub == "0100") hex += "4";
  45. if (sub == "0101") hex += "5";
  46. if (sub == "0110") hex += "6";
  47. if (sub == "0111") hex += "7";
  48. if (sub == "1000") hex += "8";
  49. if (sub == "1001") hex += "9";
  50. if (sub == "1010") hex += "A";
  51. if (sub == "1011") hex += "B";
  52. if (sub == "1100") hex += "C";
  53. if (sub == "1101") hex += "D";
  54. if (sub == "1110") hex += "E";
  55. if (sub == "1111") hex += "F";
  56. }
  57. return hex;
  58. }
  59.  
  60. string blin_to_UTF8(string blin, int bcount)
  61. {
  62. string UTF8;
  63. if (bcount == 2)
  64. {
  65. UTF8 = blin;
  66. UTF8[0] = '0';
  67. }
  68. if (bcount == 4)
  69. {
  70. UTF8 = blin;
  71. UTF8[0] = '1'; UTF8[8] = '1';
  72. UTF8[1] = '1'; UTF8[9] = '0';
  73. UTF8[2] = '0';
  74. }
  75. if (bcount == 6)
  76. {
  77. UTF8 = blin;
  78. UTF8[0] = '1'; UTF8[8] = '1'; UTF8[16] = '1';
  79. UTF8[1] = '1'; UTF8[9] = '0'; UTF8[17] = '0';
  80. UTF8[2] = '1';
  81. UTF8[3] = '0';
  82. }
  83. if (bcount == 8)
  84. {
  85. UTF8 = blin;
  86. UTF8[0] = '1'; UTF8[8] = '1'; UTF8[16] = '1'; UTF8[24] = '1';
  87. UTF8[1] = '1'; UTF8[9] = '0'; UTF8[17] = '0'; UTF8[25] = '1';
  88. UTF8[2] = '1';
  89. UTF8[3] = '1';
  90. UTF8[4] = '0';
  91. }
  92. return UTF8;
  93. }
  94.  
  95. int main()
  96. {
  97. char c; cin >> c;
  98. int char_int = c;
  99. stringstream ss;
  100. ss << std::hex << char_int;
  101. string char_hex = ss.str();
  102. cout << "hex: " << char_hex << endl;
  103. int bytecount = 0;
  104. string char_blin = hex_to_blin(char_hex,bytecount);
  105. cout << "bin: " << char_blin << ", hex char count: " << bytecount << endl;
  106. string UTF8_blin = blin_to_UTF8(char_blin, bytecount);
  107. cout << "UTF8 - bin: " << UTF8_blin;
  108. string UTF8_hex = blin_to_hex(UTF8_blin);
  109. cout << ", hex: " << UTF8_hex << endl;
  110. return 0;
  111. }
Advertisement
Add Comment
Please, Sign In to add comment