You must create the 32-bit value by adding the byte elements shifted to the correct position:
uint32_t a = (one[3] << 24) | (one[2] << 16) | (one[1] << 8) | one[0];
[EDIT]
It must be of course:
uint32_t a = (one[0] << 24) | (one[1] << 16) | (one[2] << 8) | one[3];
[/EDIT]
You may also use C casting:
uint32_t a = *((uint32_t*)one);
But casting requires that the
endianess[
^] (byte order) of your system is the same as used by your
one
array.