Reading bytes and converting to int
Jonathan M Davis
jmdavisProg at gmx.com
Sat Aug 25 13:02:20 PDT 2012
On Saturday, August 25, 2012 21:50:58 joao wrote:
> Thanks everyone, I solved the problem.
> I didn't understand these bitmanip methods so I searched and
> found a function to do what I wanted:
>
> string b = "\x24\x10\x00\x00";
> uint i = byteToInt(b);
> uint byteToInt(string b) {
> return b[0] | b[1] << 8 | b[2] << 16 | b[3] << 24;
> }
>
> => 4132
What's hard to understand about them? I thought that they were very
straightforward.
This will do essentially the same thing:
import std.bitmanip;
import std.system;
void main()
{
ubyte[] b = [0x24, 0x10, 0x00, 0x00];
auto i = peek!(uint, Endian.littleEndian)(b);
assert(i == 4132);
}
Use peek if you don't want to consume the buffer and read if you do.
- Jonathan M Davis
More information about the Digitalmars-d-learn
mailing list