+ -
当前位置:首页 → 问答吧 → 问一句代码的意思

问一句代码的意思

时间:2011-12-11

来源:互联网

C/C++ code
    DWORD dwDriveList = ::GetLogicalDrives ();

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



其中if (dwDriveList & 1) 不太明白,尤其是括号里的写法,它是想表达什么呢谢谢

作者: doctorwing   发布时间: 2011-12-11

假如dwDriveList=9;
00000000 00000000 00000000 00001001
1就是
00000000 00000000 00000000 00000001
那么dwDriveList & 1
00000000 00000000 00000000 00000001

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

作者: yisikaipu   发布时间: 2011-12-11

判断是否存在第一个盘符

作者: xuddk727   发布时间: 2011-12-11

位与操作,1&1=1,1&0=0,0&1=0,0&0=0!

作者: woweiwokuang0000   发布时间: 2011-12-11

位操作,判断dwDriveList是否为1。

作者: zhuwanglove   发布时间: 2011-12-12

引用 3 楼 woweiwokuang0000 的回复:
位与操作,1&1=1,1&0=0,0&1=0,0&0=0!


理解一致。

作者: goodboyxh   发布时间: 2011-12-12

按位与操作,看dwDriveList位数,1前面补齐0,再按位与。

作者: wzx_1987   发布时间: 2011-12-12

位运算与

作者: qimingxingzwq   发布时间: 2011-12-12