Converting a ulong to a byte array and constructing a ulong from it

Daniel Kozak kozzi11 at gmail.com
Thu Oct 24 14:18:19 UTC 2019


On Thu, Oct 24, 2019 at 3:35 PM 9898287 via Digitalmars-d-learn
<digitalmars-d-learn at puremagic.com> wrote:
>
> What's the function for converting a ulong to a native-endian
> byte array?
> For example,
>
> auto bytes = 0x1234567890123456u64.to_ne_bytes();
> // should yield
> // [0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56] in big-endian
> and
> // [0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12] in
> little-endian systems
>
> Also, what's the function for constructing a ulong from a
> native-endian byte array?
> For example,
>
> auto value = from_be_bytes!ulong([0x12, 0x34, 0x56, 0x78, 0x90,
> 0x12, 0x34, 0x56]);
> // value is 0x1234567890123456
>
> Rust equivalent:
> https://doc.rust-lang.org/std/primitive.u64.html#method.to_ne_bytes

You could use

https://dlang.org/phobos/std_bitmanip.html#write
https://dlang.org/phobos/std_bitmanip.html#read


More information about the Digitalmars-d-learn mailing list