convert base

Steven Schveighoffer via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Mon Jun 1 18:43:56 PDT 2015


On 6/1/15 8:36 PM, Hugo wrote:
> On Tuesday, 2 June 2015 at 00:00:43 UTC, Steven Schveighoffer wrote:
>> On 6/1/15 7:16 PM, Hugo wrote:
>>> Thanks! Is there a way to specify a source base different than 10?
>>
>> A "source base"? the source base is always binary :)
>>
>> If you want to go between base string representation, there is parse
>> for going from string to binary.
>
> What I meant was for example being able to pass from console as an
> argument the number to convert lets say in hexadecimal, octal or binary
> representation.
>
> I will check parse though, thanks.

Yes, use std.conv.parse:

auto binRepresentation = parse!long("1a2b", 16); // read hex

>
>>> And by the way, this method does not seem to work for bases higher than
>>> 36, how could one achieve for example a conversion to a base-60?
>>
>> 35 in base-36 is Z. What is 36 in base-37? At some point you run out
>> of alphabet.
>
> Well.. that depends on what you accept as valid characters, doesn't it?
> Base-64 is a good example.

This means 'A' and 'a' have 2 different values.

I don't think a general function such as to with radix is good for this. 
You can probably do better with a custom function, I'm not sure if 
there's any base-64 libraries out there.

-Steve


More information about the Digitalmars-d-learn mailing list