How to Concatenate Hex Numbers?

c, concatenation, hex

Solution

Supposing `unsigned int a,b,c,d;`

unsigned int result = (a<<24) | (b<<16)| (c<<8) | d;

But this is essentially implementation dependent since C++ standard only specifies minimal sizes of integers.

So for `uint32_t a, b, c, d`:

uint32_t result = (a<<24) | (b<<16)| (c<<8) | d;

Problem

I've been trying to concatenate 4 hex numbers and can't seem to do it. Example: ``` int a = 0x01; int b = 0x00; int c = 0x20; int d = 0xF1; //Result should be 0x010020F1 ``` The results that I am getting using `sprintf()` and bitwise operations always have cut off zeros, giving me answers like 1020F1, which is much different than what I want. Anybody have a better method?

Original source