//按位与运算& System.out.println(0&0);//0 System.out.println(0&1);//0 System.out.println(1&1);//1 System.out.println("==========="); //按位或运算符| System.out.println(0|0);//0 System.out.println(0|1);//1 System.out.println(1|1);//1 System.…
http://blog.csdn.net/dandanteng/article/details/7433531 首先要明白一点,这里面所有的操作都是针对存储在计算机中中二进制的操作,那么就要知道,正数在计算机中是用二进制表示的,负数在计算机中使用补码表示的. 左移位:<<,有符号的移位操作左移操作时将运算数的二进制码整体左移指定位数,左移之后的空位用0补充 右移位:>>,有符号的移位操作右移操作是将运算数的二进制码整体右移指定位数,右移之后的空位用符号位补充,如果是正数用0补充,负…
1-左移运算符m<<n,表示把m左移n位.左移n位的时候,最左边的n位数将被丢弃,同时在最右边补上n个0.例如: 00001010<<2 = 00101000 10001010<<3=01010000 2-右移运算符m>>n表示把m右移n位.右移n位的时候,最右边的n位将被丢弃.同时在最左边补上n个符号位.例如: 00001010>>2=00000010 10001010>>3=10001 3-无符号右移运算符m>>>…
吐槽先~为什么我的老师大学时候没教过我这东西  - -. 继续送栗子: 比如 “(1+2)<<3” 你们猜等于几~ Debug.Log((1+2)<<3)之后输出的是“24”. 为什么呢~ 因为呀因为呀  “ “左移/右移” 是指对应的二进制向左右移位,执行1+2=3,就变成了3<<3.即:把3对应的二进制向左移3位. 3对应的二进制:11   向左移3位变成 11000 二进制11000不就是十进制的24嘛~~~” 继续拓展一下思维 3>>1<<…
在阅读源码的过程中,经常会看到这些符号<< ,>>,>>>,这些符号在Java中叫移位运算符,在写代码的过程中,虽然我们基本上不会去写这些符号,但需要明白这些符号的运算原理,比如HashMap中有以下代码: static final int DEFAULT_INITIAL_CAPACITY = 1 << 4;//左移 static final int hash(Object key) { int h; return (key == null) ? 0…
程序中的所有数在计算机内存中都是以二进制的形式储存的,位运算就是直接对整数在内存中的二进制位进行操作. 知识点: 1.原码.反码.补码(以byte的1.-1举例) 示例                    1                      -1 原码        0000 0001          1000 0001     ------>第一位是符号位,0是正数,1为负数 反码        0000 0001          1111 1110       ------>…
C语言提供的位运算符列表:运算符 含义 描述& 按位与 如果两个相应的二进制位都为1,则该位的结果值为1,否则为0| 按位或 两个相应的二进制位中只要有一个为1,该位的结果值为1^ 按位异或 若参加运算的两个二进制位值相同则为0,否则为1~ 取反 ~是一元运算符,用来对一个二进制数按位取反,即将0变1,将1变0<< 左移 用来将一个数的各二进制位全部左移N位,右补0>> 右移 将一个数的各二进制位右移N位,移到右端的低位被舍弃,对于无符号数,高位补0 1. and(&…
转载自:http://www.jb51.net/article/40559.htm,感谢原作者. 以下是对C语言中的位运算符:与.或.异或.取反.左移与右移进行了详细的分析介绍,需要的朋友可以过来参考下 位运算是指按二进制进行的运算.在系统软件中,常常需要处理二进制位的问题.C语言提供了6个位操作运算符.这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型. C语言提供的位运算符列表:运算符 含义 描述& 按位与 如果两个相应的二进制位都为1,则该位…
一.& 按位与 如果两个相应的二进制位都为1,则该位的结果值为1,否则为0应用:(1)清零 若想对一个存储单元清零,即使其全部二进制位为0,只要找一个二进制数,其中各个位符合一下条件:原来的数中为1的位,新数中相应位为0.然后使二者进行&运算,即可达到清零目的. a 00101011 b 10010100 c 00000000 //c = a & b (2)取一个数中某些指定位 若有一个整数a(2byte),想要取其中的低字节,只需要将a与8个1按位与即可. a 00101100…
C语言位运算符:与.或.异或.取反.左移和右移 个位操作运算符.这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型. ,则该位的结果值为1,否则为0 | 按位或 两个相应的二进制位中只要有一个为1,该位的结果值为1 ^ 按位异或 若参加运算的两个二进制位值相同则为0,否则为1 ~ 取反 ~是一元运算符,用来对一个二进制数按位取反,即将0变1,将1变0 << 左移 用来将一个数的各二进制位全部左移N位,右补0 >> 右移 将一个数的各二…