位运算符除按位与、按位或运算符外,其它只能用于处理整数的操作。位运算是完全针对位方面的操作。
1、“按位与”运算
“按位与”运算的运算符为“&”,“按位与”运算的运算法则是:如果两个整型数据a、b对应为都是1,则结果位才是1,否则为0。如果两个操作数的精度不同,则结果的精度与精度高的操作数相同。
2、“按位或”运算
“按位或”运算的运算符是“|”,“按位或”运算的运算法则是:如果两个操作数对应为都是0则结果是0,否则为1。如果两个操作数的精度不同,则结果的精度与精度高的操作数相同。
3、“按位取反”运算
“按位取反”运算也称按位“非”运算,运算符为“~”,为单目运算符。“按位取反”运算就是将操作数二进制中的1修改为0,0修改为1。
4、“按位异或”运算符
“按位异或”运算符是“^”,“按位异或”运算的运算法则是:当两个操作数的二进制表示相同(同为0或同为1),结果为0,否则为1。若两个操作数精度不同,则结果数的精度与精度高的操作数相同。
5、可以对数据按二进制位进行移位操作。C#中的移位运算符有以下两种。<<:左移。>>右移。
对于x<<n或x>>n形式的运算,含义是将x向左或向右移动n位,得到的结果类型与x相同。在此处,x的类型只能是int、uint、long或ulong,n的类型只能是int,或者显示转换为这些类型之一,否则,编译程序的时候,会出现语法错误。具体执行时,左移就是将左边的操作数在内存中的二进制数据左移右边操作数指定的位数,右边移空的部分补零。右移则复杂一些,当使用“>>”符号时,如果高位时0,左移空的位就输入0;如果最高位是1,左移空的位就输入1。
移位可以实现整数除以或乘以2的n次方的效果。