位运算无论在C#,VB还是在T-SQL里都有对它支持,位运算即对数值类型的每位进行计算,对于程序里,你可以使用十进制,十六进制,二进制对它进行位运算,事实上无论你使用哪种进制,对于计算机来说最后都为把它转换成二进制(0,1)的形式,因为二进制为简单,呵呵。
下面是关于位运算的表格
运算符号 |
位运算操作符 |
运算对象类型 |
运算结果类型 |
对象操作数 |
实例 |
~ |
非运算 |
整型 |
整型 |
1个 |
~x |
& |
与运算 |
2个 |
x & y |
||
| |
或运算 |
2个 |
x | y |
||
^ |
异或运算 |
2个 |
x ^ y |
||
<< |
左移运算 |
2个 |
x << 2 |
||
>> |
右移运算 |
2个 |
x >> 2 |
一般地,这种位运算中,我们的操作数多用于2的N次方的结果,如0,2,4,8,16,32,64,128...,为什么呢,因为这些数字在转换成二进制后都很
特别,看一下代码,呵呵
1 1
2 10
4 100
8 1000
16 10000
32 100000
64 1000000
128 10000000
看到时了它,它们只是在最高位是为1,而其它位上都是0,这样对于这些数字在进行位运算时,会有一些性质,我来总结一下:
对于满足2的N次方的十进制数字有以下运算特性:
1 与运算可以用来判断某个数是位在另外一个数中存在:
10 & 2 //结果为2,大于0表示操作数2在操作数1中存在 10=8+2
2 或运算可以用来将两个数相加在一起
8 | 2 //结果为10,10 | 2 结果还是10,你可以把它转换为二进制看一下,(1000 | 10 为1010,而1010 | 10 结果还是1010 ))呵呵,而10|4结果为14
3 非运算和与运算在一起使用,可以将一个元素从一个集合里去除
4 & (~2) //结果为4,4里不包含2,所以直接返回原值4 3 & (~2) //结果为1,3由1和2组成,所以去掉2后原值变为1
4 左移运算,每移1位相当于乘2
4 << 2 //结果为16
5 右移去处,每移1位相当于除2
4 >> 2 //结果为1
总结:
有时候,我们在书本上看到的及网络上看到的东西,不一定是正确的,有时,要求我们自己打开电脑去验证一下,呵呵!
有时候,编程的东西,很多时候当你把十进制变成二进制后会,就海阔天空了,呵呵!
感谢您的阅读!
本文转自博客园张占岭(仓储大叔)的博客,原文链接:基础才是重中之重~位的运算,如需转载请自行联系原博主。
时间: 2024-09-21 05:55:37