首页 > 代码库 > 位运算(&)一题
位运算(&)一题
Find the defects in each of the following programs, and explain why it is incorrect.
// the function need set corresponding bit in int#define BIT_MASK(bit_pos) (0x01 << (bit_pos))int Bit_Reset(unsigned int *val, unsigned char pos){ if (pos >= sizeof(unsigned int)*8) { return 0; } *val = (*val && ~BIT_MASK(pos)); return 1;}
析:
*val = (*val && ~BIT_MASK(pos));
是逻辑运算而不是位运算
按如下修改即可
*val = (*val & ~BIT_MASK(pos));
位运算(&)一题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。