Floating point 数据存储IEEE754,具有小端和大端

Floating point 数据存储IEEE754,具有小端和大端,floating-point,endianness,Floating Point,Endianness,我现在正在学习一些IT知识,有一个很简单的问题。。 我的任务是计算4字节内存转储的十进制输出,存储为little endian IEEE754。我的书只解释了在存储数据时如何处理这种计算,如下所示: |--------- Byte 1 --------|--------- Byte 2 -------------|--------- Byte 3 ------------|--------- Byte 4 ------| |sign e7 e6 e5 e4 e3 e2 e1|e0 m22 m21

我现在正在学习一些IT知识,有一个很简单的问题。。 我的任务是计算4字节内存转储的十进制输出,存储为little endian IEEE754。我的书只解释了在存储数据时如何处理这种计算,如下所示:

|--------- Byte 1 --------|--------- Byte 2 -------------|--------- Byte 3 ------------|--------- Byte 4 ------|
|sign e7 e6 e5 e4 e3 e2 e1|e0 m22 m21 m20 m19 m18 m17 m16|m15 m14 m13 m12 m11 m10 m9 m8|m7 m6 m5 m4 m3 m2 m1 m0|
我没有任何关于little/big endian的有用描述… 我花了很多时间,发现上面的表必须存储为big-endian。little endian的描述中说,第一个字节位于第四个字节的位置,第二个字节位于第三个位置,第三个字节位于第二个位置,第四个字节位于第一个地址

Example:
Big endian: AB CD EF 01
Little endian: 01 EF CD AB
我说的对吗

我现在有点困惑,因为这一定意味着,例如,数字的符号位是AB字节的第一个,不是吗? 是否有人可以确认或解释下表是否正确“转移”给little endian:

|--------- Byte 1 ------|--------- Byte 2 ------------|--------- Byte 3 -------------|--------- Byte 4 --------|
|m7 m6 m5 m4 m3 m2 m1 m0|m15 m14 m13 m12 m11 m10 m9 m8|e0 m22 m21 m20 m19 m18 m17 m16|sign e7 e6 e5 e4 e3 e2 e1|

非常感谢!!!

您的解释完全正确。只需一个简单的程序即可轻松验证

#include <stdio.h>
#include <string.h>

int main() {

  float f=-123456.75f;
  int i;
  unsigned char c[4];

  memcpy(c,&f,4);
  memcpy(&i,&f,4);
  printf("decimal representation of f: %f\n",f);
  printf("hex representation of f: %a\n",f);
  printf("hex value of integer with the same bytes as f:  %x\n",i);
  printf("sucessive bytes in f (0:3): %.2x %.2x %.2x %.2x\n",c[0],c[1],c[2],c[3]);
  /* gives
decimal representation of f: -123456.750000
hex representation of f: -0x1.e240cp+16
hex value of integer with the same bytes as f:  c7f12060
sucessive bytes in f (0:3): 60 20 f1 c7
  */
}

非常感谢您的回答!最后一个问题:以下数据存储在这四个字节中:字节1,地址0x100:AA十六进制;字节2,地址0x101:BB;字节3,地址0x102:CC;字节4,地址0x103:DD;这意味着符号是这个双数中突出显示的位置:11011101,对吗?是字节的顺序吗按照我刚才描述的方式重新存储,还是相反?是的,似乎是这样,但这取决于您的硬件。使用提供的代码并更改数字的符号。通过考虑正数和负数的结果,符号位的位置将是明显的。
|--------- Byte 1 ------|--------- Byte 2 ------------|--------- Byte 3 -------------|--------- Byte 4 --------|
|m0 m1 m2 m3 m4 m5 m6 m7|m8 m0 m10 m11 m12 m13 m14 m15|m16 m17 m18 m19 m20 m21 m22 e0|e1 e2 e3 e4 e5 e6 e7 sign|