C Programming - Floating Point Issues - Discussion

Discussion Forum : Floating Point Issues - General Questions (Q.No. 8)
8.
A float occupies 4 bytes. If the hexadecimal equivalent of these 4 bytes are A, B, C and D, then when this float is stored in memory in which of the following order do these bytes gets stored?
ABCD
DCBA
0xABCD
Depends on big endian or little endian architecture
Answer: Option
Explanation:
No answer description is available. Let's discuss.
Discussion:
36 comments Page 3 of 4.

Nishtha said:   2 decades ago
Thank you so much.

Souravb said:   2 decades ago
Thanks dude!!

Harish said:   2 decades ago
Thanks dude :)

Kavita said:   1 decade ago
Krunal was rite about the processors architecture but explanation for Little and Big Endian architecture got reversed.

Here a Proper and Correct Explanation.

Consider the storage of the value ABCD
Here,

A-MSB(Most Significant Byte).
B
C
D-LSB(Least Significant Byte).

In Little Endian Architecture, LSB is at the lowest address of the memory location. Suppose memory location starts with 0
D->0
C->1
B->2
A->3
Intel Processors(CPUs) are Little Endian.

In Big Endian Architecture, MSB is at the lowest address of the memory location. As shown below.
A->0
B->1
C->2
D->3
While Motorola 680x0 CPUs are big-endian

For more details and confirmation visit : http://en.wikipedia.org/wiki/Endianness#Big-endian

Rishabh said:   1 decade ago
@Kavita

Thanks for proper information. Super!

Ram said:   1 decade ago
Good thread guys,
thanks to every one and india bix.

Praveen Kumar said:   1 decade ago
Thank you so much Krunal.

Abirami said:   2 decades ago
What is 'big endian or little endian architecture'?

Please, give me the correct explanation.

Sandeep said:   1 decade ago
What kavitha said was up to the mark. But it is for 8 bit processors.

What we generally use are all of 16-bit processors.

So in ABCD.

CD will be allocated consecutive 2 bytes (16-bit).

And then AB will be allocated consecutive 2 bytes.

For more info refer to any microprocessors text.

Santhosh kumar m v said:   1 decade ago
When designing computers, there are two different architectures for handling memory storage. They are called Big Endian and Little Endian and refer to the order in which the bytes are stored in memory. Windows NT was designed around Little Endian architecture and was not designed to be compatible with Big Endian because most programs are written with some dependency on Little Endian.

These two phrases are derived from "Big End In" and "Little End In." They refer to the way in which memory is stored. On an Intel computer, the little end is stored first. This means a Hex word like 0x1234 is stored in memory as (0x34 0x12). The little end, or lower end, is stored first. The same is true for a four-byte value; for example, 0x12345678 would be stored as (0x78 0x56 0x34 0x12). "Big End In" does this in the reverse fashion, so 0x1234 would be stored as (0x12 0x34) in memory. This is the method used by Motorola computers and can also be used on RISC-based computers. The RISC-based MIPS computers and the DEC Alpha computers are configurable for Big Endian or Little Endian. Windows NT works only in the Little Endian mode on both computers.

Windows NT was designed around Little Endian architecture. The Hardware Abstraction Layer (HAL) is written so that all operating system-related issues are automatically handled. Therefore, it is possible to create a HAL that could work on Big Endian architecture. The basic problem with porting the code has to do with the way the code is written for all programs. Code is often written with the assumption that Big Endian or Little Endian is being used. This may not be specific to the HAL; it could be something as simple as bit masking for graphics. To clarify this concept more, two programming examples follow.


Post your comments here:

Your comments will be displayed after verification.