endian问题

zourongrong 2007-01-08 09:51:37
big-endian和littleendian中移位
操作有什么不一样,用c语言的移位操作呢?
...全文
257 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
foxdeng 2007-01-10
  • 打赏
  • 举报
回复
移位是在寄存器中进行的,而大小端的区别只在存储器中才能体现,所以结论是:
big-endian和littleendian中移位操作一样
大熊猫侯佩 2007-01-08
  • 打赏
  • 举报
回复
字节顺序不一样,操作不困难吧?
yeLongBox 2007-01-08
  • 打赏
  • 举报
回复
数据的大小端问题是指数据以何种方式在存储器中被存储和引用,所以具体到移位指令的操作部分来说没什么不一样,因为在此之前CPU已经对数据重新进行了映射,但是有一点需要注意的是:异构平台间数据交互的时候大小端的不同影响到对某些数据的理解,比如同是32位的两台机器A,B;

A:大端 B:小端,下面举例说明数据存储情况

例如无符号整形数:0x01020304

地址:小 -----〉 大
A:01 02 03 04
B:04 03 02 01

如果我们从左到右把A机器中的数据传输到B机器中,并把该串数据认为无符号整形数的话会导致数据的不一致性,因为B机器的小端特性,它会从右到左理解该串无符号整形数,所以在B机器上该串数据被认为是0x04030201,结果导致数据的不一致性。
  • 打赏
  • 举报
回复
486+有一条bswap指令做大小端数据的转换。

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧