aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgameboyprinter <gameboyprinter@users.noreply.github.com>2018-07-05 12:26:15 -0500
committergameboyprinter <gameboyprinter@users.noreply.github.com>2018-07-05 12:26:15 -0500
commit4e96a41b4ee6bbc920b7c5a5ec555d6d14e65b18 (patch)
treec098c48117d32475bc6d24c887bedbd5a2f102ff
parentbed0b55e70f13adf772584fc0d31ebfe59597115 (diff)
better int to hex
-rw-r--r--hex_functions.cpp34
-rw-r--r--hex_functions.h2
2 files changed, 11 insertions, 25 deletions
diff --git a/hex_functions.cpp b/hex_functions.cpp
index 9db2b0a7..c503af6b 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 << your_int;
+ std::string result(stream.str());
+ std::transform(str.begin(), str.end(), str.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
diff --git a/hex_functions.h b/hex_functions.h
index 47d9466b..9f7a1e75 100644
--- a/hex_functions.h
+++ b/hex_functions.h
@@ -4,6 +4,8 @@
#include <bitset>
#include <cstdint>
#include <iostream>
+#include <algorithm>
+#include <string>
namespace omni
{