这个位运算什么意思?

spyhot 2006-06-18 06:32:57
unsigned long temp;
UINT8* off = buf \\从文件中读出数据并放到buf中
{
temp = ((UINT32)*off++)<<24; temp |= ((UINT32)*off++)<<16;
temp |= ((UINT32)*off++)<<8; temp |= ((UINT32)*off++);
}

...
...全文
241 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jinjiajie 2006-06-20
  • 打赏
  • 举报
回复
...手慢了
spyhot 2006-06-19
  • 打赏
  • 举报
回复
zez的建议不错
ll_dzl 2006-06-19
  • 打赏
  • 举报
回复
同sharpdew(风刃),这是一种表示方法的转换。
zez 2006-06-19
  • 打赏
  • 举报
回复
楼主知道 大字节序,小字节序,网络字节序,本地字节序 等相关知识,应该就明白这段代码的作用了..
jixingzhong 2006-06-19
  • 打赏
  • 举报
回复
注意 |= 的作用就可以知道了,
就是把数据安字节加到 temp 上 ....
jixingzhong 2006-06-19
  • 打赏
  • 举报
回复
spyhot() ( ) 信誉:100 2006-6-18 18:47:36 得分: 0

知道了 这段程序好像是用四个字节的内容组合成一个unsigned long类型的数据;
这里好像涉及到了一个四字节long型数据在文件中如何存储的问题;

如果long temp=0xAABBCCDD,那么它在计算机中的存储也顺序存储?
物理地址 **** 内容
00000001 AA
00000002 BB
00000001 CC
00000002 DD
==========================
是的
PANBing 2006-06-18
  • 打赏
  • 举报
回复
kao!这么快.
PANBing 2006-06-18
  • 打赏
  • 举报
回复
的确是这样,不过读进的字节是从temp的高位部分往低位部分放
sharpdew 2006-06-18
  • 打赏
  • 举报
回复
把8位的int数据依次从低到高位的顺序存储到32位的整型数据中
spyhot 2006-06-18
  • 打赏
  • 举报
回复
知道了 这段程序好像是用四个字节的内容组合成一个unsigned long类型的数据;
这里好像涉及到了一个四字节long型数据在文件中如何存储的问题;

如果long temp=0xAABBCCDD,那么它在计算机中的存储也顺序存储?
物理地址 **** 内容
00000001 AA
00000002 BB
00000001 CC
00000002 DD

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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