On 04/24/2015 11:14 AM, nrgyzer wrote:
Hi,

I'm looking for a function that converts my hex-string to a binary
representation. In Python I write the following:

myHex = "123456789ABCDEF"
myBin = myHex.decode('hex')

But how to do the same in D? Is there any function?

Thanks for suggestions!

Here is one way:

import std.stdio;
import std.format;

string hexToBin(string source)
{
    ulong value;
    formattedRead(source, "%x", &value);
    return format("%b", value);
}

enum string hex = "hex";

string decode(string TargetFormat)(string source)
{
    static if (TargetFormat == "hex") {
        return hexToBin(source);

    } else {
        static assert(false,
                      format("I don't know how to decode to '%s'",
                             TargetFormat));
        return "";
    }
}

void main()
{
    assert("123456789ABCDEF".decode!hex ==
           "100100011010001010110011110001001101010111100110111101111");
}

Ali

Reply via email to