1 #include "otsdaq-core/Macros/BinaryStringMacros.h"
11 std::string BinaryStringMacros::binaryToHexString(
const char* binaryBuffer,
12 unsigned int numberOfBytes,
13 const std::string& resultPreamble,
14 const std::string& resultDelimiter)
17 dest.reserve(numberOfBytes * 2);
20 for(
unsigned int i = 0; i < numberOfBytes; ++i)
22 sprintf(hexstr,
"%02X", (
unsigned char)binaryBuffer[i]);
24 dest += resultDelimiter;
27 return resultPreamble + dest;
35 std::string BinaryStringMacros::binaryTo8ByteHexString(
const std::string& binaryBuffer,
36 const std::string& resultPreamble,
37 const std::string& resultDelimiter)
40 dest.reserve(binaryBuffer.size() * 2 +
41 resultDelimiter.size() * (binaryBuffer.size() / 8) +
42 resultPreamble.size());
45 dest += resultPreamble;
48 for(; j + 8 < binaryBuffer.size(); j += 8)
51 dest += resultDelimiter;
52 for(
unsigned int k = 0; k < 8; ++k)
54 sprintf(hexstr,
"%02X", (
unsigned char)binaryBuffer[7 - k + j * 8]);
58 for(
unsigned int k = binaryBuffer.size() - 1; k >= j; --k)
60 sprintf(hexstr,
"%02X", (
unsigned char)binaryBuffer[k]);