C语言位运算符的用法
C语言中位运算的运算成分只有整数型或字符型的数据,位运算将运算对象视为由二进制构成的位串信息,逐位完成指定的运算,得到位串信息的结果。 下一篇小编将介绍C语言位运算符的用法。
C语言的位运算符的用法如下。
一、位运算符C语言有六种位运算符。
按位
|按位或
^按位异或
取反
向左移动
向右移动
1 .按位运算
位和运算符“”是双目运算符。 其功能是分别与参与运算的2个数相对应的二进制相和二进制相。 只有当相应的二进制数都为1时,结果位才为1,否则为0。 参与运算的数表现为补数。
例如,95可以写成: 可知00001001(9的二进制数) 00000101 (5) 5的二进制数) 000001 ) 1的二进制数)为95=1。
按位和运算通常用于将某些位清零或保持某些位。 例如,如果将a的前八位清除为0,保留后八位,则可以进行a255运算。 255的二进制数是0000000011111111。
主()。
int a=9,b=5,c;
c=ab;
printf(a=%d/nb=%d/NC=%d/n )、a、b、c );
}
2 .按位或运算
位或运算符“|”是双目运算符。 其功能是分别对应于参与运算的两个数的二进制相或。 如果对应的两个二进制文件中的任何一个为1,则结果位为1。 参与运算的两个数都以补数出现。
例如,9|5可以写公式00001001|00000101
00001101 (十进制为13 )可以看出9|5=13
主()。
int a=9,b=5,c;
c=a|b;
printf(a=%d/nb=%d/NC=%d/n )、a、b、c );
}
3 .异或运算
异或运算符“^”是双目运算符。 其功能是,如果参与运算的两个数各自对应的二进制不同,或者两个对应的二进制不同,则结果为1。 参加运算数依然以补数出现,例如9^5可以写成如下算式。 000001001 ^ 000010100001100 (十进制为12 )。
主()。
int a=9
a=a^15;
printf(a=%d/n ),a );
}
4 .求逆运算
求逆算子~是单眼算子,具有右结合性。 其功能是逐位反转参与运算的数`各二进制。 例如,对于~9的运算,~(0000000000001001 )的结果为1111111111110110。
5 .左移运算
左移运算符"
6 .右移运算
右移运算符“”是双目运算符。 其功能是将“”左侧操作数的每个二进制文件都向右移动多少位,“”右侧的数字指定要移动的位数。
例如,如果a=15,则a2表示将000001111向右移动到000011 (十进制3 )。 另外,对于有符号的数据,向右移动时,符号位一起移动。 在正数的情况下,最高有效位补充0,在负数的情况下,编码比特为1,最高有效位是补充0还是补充1取决于编译系统的规定。 涡轮C和许多系统被定为候补1。
主()。
无符号a,b;
printf (输入编号: );
scanf('%d ',a );
b=a5;
b=b15;
printf(a=%d/TB=%d/n )、a、b );
}
再看一个例子!
主()。
char a='a ',b='b ';
int p,c,d;
p=a;
p=(p8 )|b;
d=p0xff;
c=(p0xff00 ) 8;
printf (a=% d/nb=% d/NC=% d/nd=% d/n )、a、b、c和d );
}
【c语言位运算符的使用方法】相关文章: