《第15章位运算》由会员分享,可在线阅读,更多相关《第15章位运算(6页珍藏版)》请在金锄头文库上搜索。
1、第第 15 15 章章 位运算位运算15.1 15.1 位运算符位运算符 ( (用于对二进制数值的位进行运算用于对二进制数值的位进行运算) ) 包括:包括:逻辑位操作运算符逻辑位操作运算符: : 求反,一元运算符,将操作数逐位取反。求反,一元运算符,将操作数逐位取反。 按位按位“与与”,两操作数逐位求,两操作数逐位求“与与”。 按位按位“或或”,两操作数逐位求,两操作数逐位求“或或”。 按位按位“异或异或”,两操作数逐位相加不进位。,两操作数逐位相加不进位。移位运算符:移位运算符: 二进制右移,将操作数右移指定位数。二进制右移,将操作数右移指定位数。扩展的赋值运算符扩展的赋值运算符:扩展运算符
2、扩展运算符 表达式表达式 等价的表达式等价的表达式 = = a=2 a=a2 a=2 a=a= = b=n b=bn b=n b=bn = = a&=ba&=b a=a=a&ba&b = = a|=b a=a|=b a=a|ba|b = = a a=b=b a=a=a ab使用规则使用规则:(:(参加位操作的操作数必须是整型常数或整型变量参加位操作的操作数必须是整型常数或整型变量)逻辑位操作运算符的使用形式为:逻辑位操作运算符的使用形式为:q操作数操作数 操作数操作数q操作数操作数 操作数操作数q操作数操作数 操作数操作数q 操作数操作数 移位运算符的使用形式为:移位运算符的使用形式为:q操作
3、数操作数 操作数操作数 将操作数右移操作数指定的位数将操作数右移操作数指定的位数 例如:例如: int a=15, b=125 ; a&b; /* a和和b按位与按位与 */ a (b); /* a和非和非b按位或按位或 */ b2; /* b左移左移2位位 */15.2 15.2 位运算符的运算功能位运算符的运算功能1.“1.“按位取反按位取反”运算运算 0100110101001101 结果结果: : 10110010 101100102.“2.“左移左移”运算运算 char a=6,b; b=a2; a: 1111111111111000 左移左移2位位: 111111111111111
4、0 b=-215.2 15.2 位运算符的运算功能位运算符的运算功能 续续1 14.“按位与按位与”运算运算 5.“按位异或按位异或”运算运算 12: 00001100 00110011 & 10: 00001010 11000011 结果结果: 00001000 结果结果: 11110000 6.“按位或按位或”运算运算 01010011 | 00001100 结果结果: 010111117.位数不同的运算数之间的运算规则位数不同的运算数之间的运算规则1) 系统先将两个运算数右端对齐。系统先将两个运算数右端对齐。2) 再将位数短的运算数往高位扩充再将位数短的运算数往高位扩充(无符号数和正整数无符号数和正整数 左侧用左侧用0补全补全, 负数左侧用负数左侧用1补全。补全。), 然后对位运算。然后对位运算。