[ZLG-MCU] 大端与小端的差异?big endian and little endian

[复制链接]
2190|1
 楼主| erlking 发表于 2008-7-7 16:59 | 显示全部楼层 |阅读模式
下面这段代码,如果分别在大端和小端机上运行,结果会有什么差异呢?<br /><br />static&nbsp;WORD32&nbsp;F(WORD32&nbsp;data,&nbsp;WORD32&nbsp;key)&nbsp;<br />{&nbsp;<br />&nbsp;WORD32&nbsp;t;&nbsp;<br />&nbsp;&nbsp;BYTE&nbsp;v[4],&nbsp;u;&nbsp;<br />&nbsp;<br />&nbsp;&nbsp;/*&nbsp;Key&nbsp;Insersion&nbsp;*/&nbsp;<br />&nbsp;&nbsp;t&nbsp;=&nbsp;data+key;&nbsp;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;/*&nbsp;Secret&nbsp;Constant&nbsp;*/&nbsp;<br />&nbsp;&nbsp;v[3]&nbsp;=&nbsp;(BYTE)((t&gt&gt24)&0xff);&nbsp;<br />&nbsp;&nbsp;v[2]&nbsp;=&nbsp;(BYTE)((t&gt&gt16)&0xff);&nbsp;<br />&nbsp;&nbsp;v[1]&nbsp;=&nbsp;(BYTE)((t&gt&gt&nbsp;8)&0xff);&nbsp;<br />&nbsp;&nbsp;v[0]&nbsp;=&nbsp;SecretConstant[t&0xff];&nbsp;<br />&nbsp;&nbsp;u&nbsp;=&nbsp;v[0]^0x65;&nbsp;&nbsp;v[1]&nbsp;^=&nbsp;lrot8(u,1);&nbsp;<br />&nbsp;&nbsp;u&nbsp;=&nbsp;v[0]^0x2b;&nbsp;&nbsp;v[2]&nbsp;^=&nbsp;lrot8(u,5);&nbsp;<br />&nbsp;&nbsp;u&nbsp;=&nbsp;v[0]^0xc9;&nbsp;&nbsp;v[3]&nbsp;^=&nbsp;lrot8(u,2);&nbsp;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;/*&nbsp;Rotate&nbsp;*/&nbsp;<br />&nbsp;&nbsp;t&nbsp;=&nbsp;((WORD32)v[3]&lt&lt24)|((WORD32)v[2]&lt&lt16)|((WORD32)v[1]&lt&lt8)|(WORD32)v[0];&nbsp;<br />&nbsp;&nbsp;t&nbsp;^=&nbsp;lrot32(t,9)&nbsp;^&nbsp;lrot32(t,22);&nbsp;<br />&nbsp;&nbsp;<br />&nbsp;return&nbsp;t;&nbsp;<br />}&nbsp;<br />
wlq_9 发表于 2008-7-8 15:15 | 显示全部楼层

这个程序不涉及

大不端的问题.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

12

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部