aboutsummaryrefslogtreecommitdiff
path: root/hex_functions.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'hex_functions.cpp')
-rw-r--r--hex_functions.cpp34
1 files changed, 9 insertions, 25 deletions
diff --git a/hex_functions.cpp b/hex_functions.cpp
index 9db2b0a7..683097ee 100644
--- a/hex_functions.cpp
+++ b/hex_functions.cpp
@@ -4,6 +4,9 @@
namespace omni
{
+ // This might be unused but I don't care to search the entire source code
+ // So it will remain here (lol)
+ // The actual int to hex conversion is now done properly
char halfword_to_hex_char(unsigned int input)
{
if (input > 127)
@@ -53,31 +56,12 @@ namespace omni
if (input > 255)
return "FF";
- std::bitset<8> whole_byte(input);
- //240 represents 11110000, our needed bitmask
- uint8_t left_mask_int = 240;
- std::bitset<8> left_mask(left_mask_int);
- std::bitset<8> left_halfword((whole_byte & left_mask) >> 4);
- //likewise, 15 represents 00001111
- uint8_t right_mask_int = 15;
- std::bitset<8> right_mask(right_mask_int);
- std::bitset<8> right_halfword((whole_byte & right_mask));
+ std::stringstream stream;
+ stream << std::setfill('0') << std::setw(sizeof(char)*2)
+ << std::hex << input;
+ std::string result(stream.str());
+ std::transform(result.begin(), result.end(), result.begin(), ::toupper);
- unsigned int left = left_halfword.to_ulong();
- unsigned int right = right_halfword.to_ulong();
-
- //std::cout << "now have have " << left << " and " << right << '\n';
-
- char a = halfword_to_hex_char(left);
- char b = halfword_to_hex_char(right);
-
- std::string left_string(1, a);
- std::string right_string(1, b);
-
- std::string final_byte = left_string + right_string;
-
- //std::string final_byte = halfword_to_hex_char(left) + "" + halfword_to_hex_char(right);
-
- return final_byte;
+ return result;
}
} //namespace omni