/// pad binary representation to given size inline void Pad(BinaryData& data, size_t uiTargetSize) { if (data.size() < uiTargetSize) { data.reserve(uiTargetSize); data.insert(data.begin(), uiTargetSize - data.size(), 0); } }
void ToBinaryData(const TIntNumber& n, BinaryData& data) { BinaryData tempData = boost::xint::to_binary(n); // since all operators expect a high byte...low byte order, reverse the data data.reserve(data.size() + tempData.size()); std::copy(tempData.rbegin(), tempData.rend(), std::back_inserter(data)); }
TIntNumber ToInteger(const BinaryData& data, bool bFromBigEndian = true) { if (!bFromBigEndian) return TIntNumber(data); BinaryData tempData; tempData.reserve(data.size()); std::copy(data.rbegin(), data.rend(), std::back_inserter(tempData)); return TIntNumber(tempData); }