char型数组转换到int型数组

对于单一的字节(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

..

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值