后端

对于单一的字节(a byte),大部分处理器以相同的顺序处理位元(bit),因此单字节的存放方法和传输方式一般相同。

对于多字节数据,如整数(32位机中一般占4字节),在不同的处理器的存放方式主要有两种,以内存中0x0A0B0C0D的存放方式为例

从外部读取字符串后,放入一个char型数组A,通过memcpy将A--〉int型数组B,如果是LITTLE_ENDIAN,想得到正确的字符串数据的话则需要进行字节序转换。

地址:低-----------高

A[0] ~A[3]:

------- -------- ------ ----------

0x0A | 0x0B| 0x0C | 0x0D

____ ____ ____ ______

大端序高位低地址,小端序高位高地址。

大端序对应B[0]就是0x0A0B0C0D

小端对应B[0]则是0x0D0C0B0A

sample:

.....//

char testmsg[100];

int msg[100];

sscanf(argv[index],"%10s", (char *)testmsg);

memcpy(msg, testmsg, 10*4);

#if BIG_ENDIAN

#else

for (int i =0;i<10;i++)

msg[i] = htonl(msg[i]);

#endif

..

阅读更多
文章标签: c语言
个人分类: 前段
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭