首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++ 位操作 很奇怪的表达式,来看看

2012-08-10 
C++ 位操作 很奇怪的表达式,高手进来看看C/C++ codebool CCmdPackager::Alloc(int size){assert(m_iBufSiz

C++ 位操作 很奇怪的表达式,高手进来看看

C/C++ code
bool CCmdPackager::Alloc(int size){    assert(m_iBufSize>=0);    assert(m_iDataSize>=0);    assert(m_iReadPointer>=0);    int s=m_iBufSize-m_iDataSize;    if(s>=size) return true;    s=((m_iDataSize+size+0x0ffff)&(~0x0ffff));}

其中
C/C++ code
s=((m_iDataSize+size+0x0ffff)&(~0x0ffff));

得到是什么意思

[解决办法]
对齐到 0x10000
[解决办法]
~是按位取反,(~0x0ffff)就是后面四个f全部变为0,前面各位都为f,再做&与运算,即把十六进制的后四位清0,而前几位不变。

热点排行