aboutsummaryrefslogtreecommitdiff
path: root/zencore/string.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'zencore/string.cpp')
-rw-r--r--zencore/string.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/zencore/string.cpp b/zencore/string.cpp
index ad6ee78fc..f116ac477 100644
--- a/zencore/string.cpp
+++ b/zencore/string.cpp
@@ -335,6 +335,33 @@ NiceNumGeneral(uint64_t Num, std::span<char> Buffer, NicenumFormat Format)
}
}
+bool
+ParseHex(const std::string HexString, uint32_t& OutValue)
+{
+ if (HexString.length() != 8)
+ {
+ return false;
+ }
+ OutValue = strtoul(HexString.data(), 0, 16);
+ return true;
+}
+
+static const char HexLUT[] = "0123456789abcdef";
+
+void
+FormatHex(uint32_t Value, char OutBlockHexString[9])
+{
+ OutBlockHexString[0] = HexLUT[(Value >> 28) & 0xf];
+ OutBlockHexString[1] = HexLUT[(Value >> 24) & 0xf];
+ OutBlockHexString[2] = HexLUT[(Value >> 20) & 0xf];
+ OutBlockHexString[3] = HexLUT[(Value >> 16) & 0xf];
+ OutBlockHexString[4] = HexLUT[(Value >> 12) & 0xf];
+ OutBlockHexString[5] = HexLUT[(Value >> 8) & 0xf];
+ OutBlockHexString[6] = HexLUT[(Value >> 4) & 0xf];
+ OutBlockHexString[7] = HexLUT[(Value >> 0) & 0xf];
+ OutBlockHexString[8] = 0;
+}
+
size_t
NiceNumToBuffer(uint64_t Num, std::span<char> Buffer)
{