MC56F8037 Endian Architecture

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

MC56F8037 Endian Architecture

Jump to solution
707 Views
jeffersonjackso
Contributor II

Hey everyone,

I am working on an application where I need to send data (floats) to another processor. I am using the MC56F8037EVM as my processor and I have been looking for how a float is stored as binary. Currently I am using a union to break my float into a char array in order to send asynchronously. I can not find the "endianness" of my processor in the data sheet or the users manual. Has anybody come across this information or have a hints as to where to look? Thanks a bunch,

Jeff

 

The union I am using. My plan is to iterate over the char array and send one byte at a time, I just want to make sure that when it is reconstructed on the receiver side all is good and well. The receiver platform is AVR.

 

union {

  float val;

  char byteVal[4];

} var;

 

Labels (1)
Tags (2)
1 Solution
556 Views
xiangjun_rong
NXP TechSupport
NXP TechSupport

The IEEE single precision floating point standard representation requires a 32 bit word, which may be represented as numbered from 0 to 31, left to right. The first bit is the sign bit, S, the next eight bits are the exponent bits, 'E', and the final 23 bits are the fraction 'F':
  S EEEEEEEE FFFFFFFFFFFFFFFFFFFFFFF
  0 1      8 9                    31
The value V represented by the word may be determined as follows:
If E=255 and F is nonzero, then V=NaN ("Not a number")
If E=255 and F is zero and S is 1, then V=-Infinity
If E=255 and F is zero and S is 0, then V=Infinity
If 0<E<255 then V=(-1)**S * 2 ** (E-127) * (1.F) where "1.F" is intended to represent the binary number created by prefixing F with an implicit leading 1 and a binary point.
If E=0 and F is nonzero, then V=(-1)**S * 2 ** (-126) * (0.F) These are "unnormalized" values.
If E=0 and F is zero and S is 1, then V=-0
If E=0 and F is zero and S is 0, then V=0

I think you can also find more descriptions on web by searing “IEEE 754” with Google. For example:

http://754r.ucbtest.org/standards/754xml.html

View solution in original post

0 Kudos
3 Replies
556 Views
jeffersonjackso
Contributor II

Awesome! Thanks for all the help.

Cheers,

Jeff

556 Views
Monica
Senior Contributor III

Hello Jefferson!

Was this insight helpful?

Keep us posted! :smileywink:

Best regards,

Monica

0 Kudos
557 Views
xiangjun_rong
NXP TechSupport
NXP TechSupport

The IEEE single precision floating point standard representation requires a 32 bit word, which may be represented as numbered from 0 to 31, left to right. The first bit is the sign bit, S, the next eight bits are the exponent bits, 'E', and the final 23 bits are the fraction 'F':
  S EEEEEEEE FFFFFFFFFFFFFFFFFFFFFFF
  0 1      8 9                    31
The value V represented by the word may be determined as follows:
If E=255 and F is nonzero, then V=NaN ("Not a number")
If E=255 and F is zero and S is 1, then V=-Infinity
If E=255 and F is zero and S is 0, then V=Infinity
If 0<E<255 then V=(-1)**S * 2 ** (E-127) * (1.F) where "1.F" is intended to represent the binary number created by prefixing F with an implicit leading 1 and a binary point.
If E=0 and F is nonzero, then V=(-1)**S * 2 ** (-126) * (0.F) These are "unnormalized" values.
If E=0 and F is zero and S is 1, then V=-0
If E=0 and F is zero and S is 0, then V=0

I think you can also find more descriptions on web by searing “IEEE 754” with Google. For example:

http://754r.ucbtest.org/standards/754xml.html

0 Kudos