前言那年刚找工作那会,就碰到过这么一个简单的题目 &和&&的区别相同点&和&&都可作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,其结果才为true,否则,只要有一方为false,则结果为false。(ps:当要用到逻辑与的时候&是毫无意义,&本身就不是干这个的) 不同点if(loginUser!=null&&string.IsnullOrEmpty(loginUser.UserName))
总结
位运算的使用直接进入主题位运算,这篇文章本身没有任何难度,工作中甚至用不到位运算,埋个伏笔: 在掌握位运算之前,应该明确位运算的两个概念。
01 位逻辑与运算:&& 与运算是将两个运算对象按位于进行与运算。规则是: 1&1=1 如图:15的二进制是(ps:16位int,32位int多打16个0浪费流量) 0000 0000 0000 1111 20的二进制是 0000 0000 0001 0100 15&20的结果是4 0000 0000 0000 1111 02 位逻辑或运算:||位逻辑或运算是将两个运算对象按位进行或运算,运算的规则是 1|1=1 如15|20的结果计算结果就是31 0000 0000 0000 1111 03 位逻辑异或运算: ^^位逻辑异或运算 是将两个运算对象按位进行异或运算,规则是: 1异或1等于0 即:相同得0,相异得1。15^20= 27(0001 1011) 0000 1111(15) 04.位逻辑左移运算<<<<位逻辑左移运算是将按位向左边移动若干位,左移后空出的部分为0。 比如15的二进制0000 1111 左移8位就是1111 0000 0000 0000 0000 0000 1111 左移3位(15<<3)就是0111 1000结果是120 a<<1 =2 结论a左移n位就是相当于a乘2的n次方 05 位逻辑右移运算 >>位逻辑右移运算是将按位向右边移动若干位,右移后空出的部分为0 比如 0000 1111(15)左移3位(15<<3)就是0000 0001(1) 0000 1111(15) 右移相当于整除,右移1位相当于除以2的1次方,右移2相当于除以2的2次方。(ps:这个除法是计算机的除法,你懂得) 06 位运算还能干嘛位运算的骚操作其实挺多的,篇幅不够,所以留着下一篇写。例如:
|
|
来自: dotNet全栈开发 > 《编程提升》