您的位置:首页 > 编程语言 > C语言/C++

C语言初学---对位运算符的认识

2016-11-07 22:04 357 查看
位与运算: “&”是双目运算符 其功能是参与运算的两个数字对应的二进制位相与 ,只有对应的两个二进制均为1时 结果位才为1 ,否则为0 ,参与运算的数以补码方式出现

例如 9 & 5 0000 1001 & 0000 0101 结果为 0000 0001

应用: (1)清0特定位 (2)某数中指定位

位或运算:"|" 双目运算符 其功能是参与运算的两个数字对应的二进制位或 ,只要对应的两个二进制一个为1时 结果位就为1,参与运算的数以补码方式出现

例如 9 | 5 0000 1001 | 0000 0101 结果为 0000 1101

应用: 常用来将源操作数某些位置 1 其他位不变

位异或运算:“^” 是双目运算符 其功能是参与运算的两个数字对应的二进制位相异或,当两对应的二进位相异时 结果为1.参与运算的数仍以补码方式出现

例如 9^5 0000 1001 ^ 0000 0101 结果为 0000 1100

应用: (1)令特定值取反 (2) 不引入第三变量 交换两个变量的

假设 a=a1 ,b=b1 (1) a=a^b a=a1^b1,b=b1

(2)b=a^b a=a1^b1,b=a1

(3)a=a^b a=b1,b=a1

如果我们将其中的 ^ 换做是 - 或者/ 同样可以 不过我们要记住位运算效率最高

题目:请编写一个c函数,该函数给出一个字节中被置为1的位的个数





内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: