diff --git a/src/littlebigman.c b/src/littlebigman.c new file mode 100644 index 0000000..dd69fd2 --- /dev/null +++ b/src/littlebigman.c @@ -0,0 +1,20 @@ +/* + * littlebigman.c + * + * Created on: 23 mai 2015 + * Author: coissac + */ + +#include + +bool islittlend() +{ + union { int entier; + char caractere[4] ; + } test; + + test.entier=0x01020304; + + return (test.caractere[3] == 1); +} + diff --git a/src/littlebigman.h b/src/littlebigman.h new file mode 100644 index 0000000..e1d3cf2 --- /dev/null +++ b/src/littlebigman.h @@ -0,0 +1,54 @@ +/* + * littlebigman.h + * + * Created on: 23 mai 2015 + * Author: coissac + */ + +#ifndef LITTLEBIGMAN_H_ +#define LITTLEBIGMAN_H_ + +#include + +/** + * Test is the architecture of the processor is little endian. + * + * ##Two classes of CPU architecture can be define: + * - little endian + * - big endian + * + * They describe the way the processor store multi-byte values + * in memory. Considering an 32 bits integer value encoded in + * hexadecimal `0x11223344`. This value needs four bytes to be + * stored. These for bytes will have consecutive addresses in memory. + * Let says that these addresses will be : 01, 02, 03, and 04 + * + * ###A big endian architecture will store our integer with the following schema: + * + * Address | 01 | 02 | 03 | 04 + * ---------|------|------|------|------ + * value | Ox11 | Ox22 | 0x33 | 0x44 + * + * In this architecture the last address (the end of the representation) is + * used to store the byte of higher weight (BIG ENDian) + * + * ###A little endian architecture will store our integer with the following schema: + * + * Address | 01 | 02 | 03 | 04 + * ---------|------|------|------|------ + * value | Ox44 | Ox33 | 0x22 | 0x11 + * + * In this architecture the last address is + * used to store the byte of lighter weight (LITTLE ENDian) + * + * @return a `bool` value: + * - `true` if the architecture is little endian + * - `false` if the architecture is big endian + * + * @author Eric Coissac (coissac) + * @created on 23/05/2015 + */ +bool islittlend(); + + +#endif /* LITTLEBIGMAN_H_ */