第12章俊通算
第12章 位运算
1位运算符及其应用 2.位段及其应用
1. 位运算符及其应用 2. 位段及其应用
121位运算符和位运算表达式 ■C语言中提供了如下6种的位运算 &按位与 按位或 按位异或 左移 右移 按位取反 提示:只允许对整型、字符型数据进行位运算,而 实型数据不能进行位运算
12.1位运算符和位运算表达式 ◼ C语言中提供了如下6种的位运算符: & 按位与 | 按位或 ^ 按位异或 << 左移 >> 右移 ~ 按位取反 提示:只允许对整型、字符型数据进行位运算,而 实型数据不能进行位运算
1.位运算规则 A B A&B aB A'B 101 a1100 例12.1若a=(15)10=(00001112, b=(80)10=(010100001 刂:a&b=00000ab=0101111l a^b=0101111 a=11110000
1. 位运算规则: 例12.1 若 a=(15)10=(00001111)2, b=(80)10=(01010000)10 则: a&b = 0000 0000, a|b = 0101 1111, a^b =01011111 , ~a = 1111 0000 A B A&B A|B A^B ~a 0 0 0 0 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 0
1.位运算的应用: 1)"按位与"运算经常用于将某些二进制位屏蔽掉 例122编写函数:使一个整数k中的低4位置0。 分析:用“与”运算实现:将k的低4位与0相与,其 他位与1相与,即将k与十六进制的1110相与 程序如下: unsigned int set(unsigned int k) {k=k&0x110 return(kB) 结论:任何二进制位与0相与能实现置0,与1相与该 位保持不变
1. 位运算的应用: 1)"按位与"运算经常用于将某些二进制位屏蔽掉。 例12.2 编写函数:使一个整数k中的低4位置0。 分析:用“与”运算实现:将k的低4位与0相与,其 他位与1相与,即将 k与十六进制的 1110 相与。 程序如下: unsigned int_set(unsigned int k) { k=k & 0x1110 ; return(k); } 结论:任何二进制位与0相与能实现置0,与1相与该 位保持不变