问一句代码的意思

我才是心翼 2011-12-11 04:37:39
    DWORD dwDriveList = ::GetLogicalDrives ();

while (dwDriveList) {
if (dwDriveList & 1) {
string.SetAt (0, _T ('A') + nPos);
if (AddDriveItem (string))
nDrivesAdded++;
}
dwDriveList >>= 1;
nPos++;
}



其中if (dwDriveList & 1) 不太明白,尤其是括号里的写法,它是想表达什么呢谢谢
...全文
110 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qimingxingzwq 2011-12-12
  • 打赏
  • 举报
回复
位运算与
天云 2011-12-12
  • 打赏
  • 举报
回复
按位与操作,看dwDriveList位数,1前面补齐0,再按位与。
goodboyxh 2011-12-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 woweiwokuang0000 的回复:]
位与操作,1&1=1,1&0=0,0&1=0,0&0=0!
[/Quote]

理解一致。
zhuwanglove 2011-12-12
  • 打赏
  • 举报
回复
位操作,判断dwDriveList是否为1。
modicum_lf 2011-12-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yisikaipu 的回复:]
假如dwDriveList=9;
00000000 00000000 00000000 00001001
1就是
00000000 00000000 00000000 00000001
那么dwDriveList & 1
00000000 00000000 00000000 00000001

所用是判断dwDriveList的末位是否为1
[/Quote]

++

shun_qizi_ran 2011-12-11
  • 打赏
  • 举报
回复
位与操作,1&1=1,1&0=0,0&1=0,0&0=0!
许文君 2011-12-11
  • 打赏
  • 举报
回复
判断是否存在第一个盘符
yisikaipu 2011-12-11
  • 打赏
  • 举报
回复
假如dwDriveList=9;
00000000 00000000 00000000 00001001
1就是
00000000 00000000 00000000 00000001
那么dwDriveList & 1
00000000 00000000 00000000 00000001

所用是判断dwDriveList的末位是否为1

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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