12.1位运算 C语言具有位逻辑运算和移位运算的 独特功能,参与位运算的运算量必须是整 数。位逻辑运算包括&、|、∧、~四种运 算,移位运算有<<、>两种运算。其中⌒ 位单目运算符。 x
12.1 位运算 C语言具有位逻辑运算和移位运算的 独特功能,参与位运算的运算量必须是整 数。位逻辑运算包括&、|、∧、~四种运 算,移位运算有<<、>>两种运算。其中~ 位单目运算符
12.1.1按位与 12.12按位或 12.13按位异或 12.14按位取反 12.15按位左移 12.16按位右移 121.7位运算的复合 赋值运算符 x
12.1.1 按位与 12.1.2 按位或 12.1.3 按位异或 12.1.4 按位取反 12.1.5 按位左移 12.1.6 按位右移 12.1.7 位运算的复合 赋值运算符
12.1.1按位与 参与运算的量,如果相对应的两位都为1,则该位 的结果值为1,否则为0,即: 0&0==0081==0180==0181==1 如:a的值为0x1234,b的值为0x00,a&b运算的结果c应为: a0001001000110100 8b000000001111111 c0000000000110100 按位与常用于将某个运算量的某些位清0或提取某些位的值, 如本例中,将变量的高8位清0,同时保留或提取低8位的值,可 用一个高8位为0,低8位为1的值0x00f6和它进行按位与
12.1.1 按位与 参与运算的量,如果相对应的两位都为1,则该位 的结果值为1,否则为0,即: 0&0==0 0&1==0 1&0==0 1&1==1 如:a的值为0x1234,b的值为0x00,a&b运算的结果c应为: a 0001 0010 0011 0100 & b 0000 0000 1111 1111 c 0000 0000 0011 0100 按位与常用于将某个运算量的某些位清0或提取某些位的值, 如本例中,将变量的高8位清0,同时保留或提取低8位的值,可 用一个高8位为0,低8位为1的值0x00ff和它进行按位与
12.1.2按位或 参与运算的量,如果相对应的两位都为0,则该 位的结果值为,否则为,即: 00==001==110==111==1 如:a的值为0x1234,b的值为0x00,ab运算的结果c应为: a0001001000110100 b000000001111111 c0001001011111111 按位或常用于将某个运算量的某些位置1,如本例中将变量 的低8位置1,高8位不变,可用一个高8位为0,低8位为1的值 0x00f和它进行按位或
12.1.2 按位或 参与运算的量,如果相对应的两位都为0,则该 位的结果值为0,否则为1,即: 0|0==0 0|1==1 1|0==1 1|1==1 如:a的值为0x1234,b的值为0x00,a|b运算的结果c应为: a 0001 0010 0011 0100 |b 0000 0000 1111 1111 c 0001 0010 1111 1111 按位或常用于将某个运算量的某些位置1,如本例中将变量 的低8位置1,高8位不变,可用一个高8位为0,低8位为1的值 0x00ff和它进行按位或
12.13按位异或 参与运算的量,如果相对应的两位相异,则该位 的结果为1,否则为0,即: 0∧0==00A1==11A0==111==0 如:a的值为0x1234,b的值为0x00,a∧b运算的结果c应为 a0001001000110100 ∧b0000000011111111 c0001001011001011 按位异或有“与1异或”该位翻转,“与0异或”该位不变的 规律。如本例中用0x00进行按位异或,使变量a的低8债翻 高8位不变
12.1.3 按位异或 参与运算的量,如果相对应的两位相异,则该位 的结果为1,否则为0,即: 0∧0==0 0∧1==1 1∧0==1 1∧1==0 如:a的值为0x1234,b的值为0x00,a∧b运算的结果c应为: a 0001 0010 0011 0100 ∧b 0000 0000 1111 1111 c 0001 0010 1100 1011 按位异或有“与1异或”该位翻转,“与0异或”该位不变的 规律。如本例中用0x00ff进行按位异或,使变量a的低8位翻转 ,高8位不变