Boost.Algorithm hex

Boost.Algorithmには、hex()/unhex()という、MySQL由来の関数があります。


hex()関数は、16進数表現の文字列を10進数表現に戻します。

#include <iostream>
#include <string>
#include <iterator>
#include <boost/algorithm/hex.hpp>

int main()
{
    std::string s = "abc";

    std::string out;
    boost::algorithm::hex(s, std::back_inserter(out));

    std::cout << out << std::endl;
}
616263

unhex()関数は、10進数表現の文字列を16進数表現に変換します。

#include <iostream>
#include <string>
#include <iterator>
#include <boost/algorithm/hex.hpp>

int main()
{
    std::string s = "616263";

    std::string out;
    boost::algorithm::unhex(s, std::back_inserter(out));

    std::cout << out << std::endl;
}
abc

変換に失敗した場合、以下のいずれかの例外が投げられます:

struct hex_decode_error: virtual boost::exception, virtual std::exception {};
struct not_enough_input : public hex_decode_error;
struct non_hex_input : public hex_decode_error;


参照:
hex - Boost Algorithm Library
MySQL 5.1 リファレンスマニュアル :: 11.3 文字列関数