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的位的个数
例如 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的位的个数
相关文章推荐
- 初学C语言 C语言的认识
- C语言初学--对变量的认识
- C语言-运算符与表达式
- c语言中逗号运算符和逗号表达式
- 初学JAVA003 认识Eclipse平台
- Poedu_C语言_lesson18_20160919_运算符运用
- C语言之运算符总览与运算符优先级
- 关于C语言中的逗号运算符
- 不要让眼前的困难成为你学习C语言的瓶颈:给初学C的同学
- 初学C语言--字符串语法及函数
- 学习c语言遇到的一些问题(5)(Linux)(运算符的优先级)
- C语言编程入门——常用运算符
- 初学C语言 4000 的感悟——书山有路勤为径。
- C语言_初学结构体_plusC14.2
- C语言对数组的新认识
- C语言中运算符的总结
- C语言的##运算符-预处理器的粘合剂
- 《C语言及程序设计初步》_1.11算术运算符与算术表达式_实践9——分离各位数
- C语言之关系运算符、逻辑运算符、三目运算符
- C语言 基本运算符