游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2786|回复: 2

LOBYTE(LOWORD(dwIP)) << 24?讨教运算符的问题

[复制链接]

83

主题

196

帖子

196

积分

注册会员

Rank: 2

积分
196
发表于 2007-12-7 10:13:00 | 显示全部楼层 |阅读模式
DWORD dwReverseIP = 0;
DWORD dwIP;
dwReverseIP = (LOBYTE(LOWORD(dwIP)) << 24) | (HIBYTE(LOWORD(dwIP)) << 16) | (LOBYTE(HIWORD(dwIP)) << 8) | (HIBYTE(HIWORD(dwIP)));

(LOBYTE(LOWORD(dwIP)) << 24)
先取dwIP的低16位字节(共8*16位字位bit么?)
再从刚才的8*16位字位中取最低(最右边)那个字节(8字位bit么?)
这8字位再向左移24位么?
左移24位!结果会是0吧?

让诸位见笑了.
大侠赐教.


2

主题

429

帖子

435

积分

中级会员

Rank: 3Rank: 3

积分
435
发表于 2007-12-7 19:19:00 | 显示全部楼层

Re:LOBYTE(LOWORD(dwIP)) << 24?讨教运算符的问题

要弄清楚 DWORD=32bit=4byte

(LOBYTE(LOWORD(dwIP)) &lt;&lt; 24)
所以这个是将低16位的低字节左移24位。
最后它在dwReverseIP中位于高16位的高字节。

83

主题

196

帖子

196

积分

注册会员

Rank: 2

积分
196
 楼主| 发表于 2007-12-8 10:09:00 | 显示全部楼层

Re: Re:LOBYTE(LOWORD(dwIP)) << 24?讨教运算符的问题

Enigmaya: ReOBYTE(LOWORD(dwIP)) &lt;&lt; 24?讨教运算符的问题

要弄清楚 DWORD=32bit=4byte

(LOBYTE(LOWORD(dwIP)) &lt;&lt; 24)
所以这个是将低16位的低字节左移24位...

谢谢楼上的
可以慢一点么?
一步一步来
LOWORD(dwIP) -&gt;
LOBYTE(LOWORD(dwIP) -&gt;
LOBYTE(LOWORD(dwIP)) &lt;&lt; 24 -&gt;

HIBYTE(LOWORD(dwIP)) &lt;&lt; 16
LOBYTE(HIWORD(dwIP)) &lt;&lt; 8
HIBYTE(HIWORD(dwIP)) -&gt;
(LOBYTE(LOWORD(dwIP)) &lt;&lt; 24) | (HIBYTE(LOWORD(dwIP)) &lt;&lt; 16) | (LOBYTE(HIWORD(dwIP)) &lt;&lt; 8) | (HIBYTE(HIWORD(dwIP)));

发现自己的确要夯实一下基础课
谢谢
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-17 17:16

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表