Java移位运算】的更多相关文章

学习移位运算,首先得知道参与移位运算的类型的位数,那先来复习下Java基础类型的占位数吧. Java基础类型 Java基础类型总结一览表 类型 二进制位数 最大值 最小值 初始化值 表示形式 带符号 char 8 127(2^7-1) -128(-2^7) 0 二进制补码 是 short 16 32767(2^15 - 1) -32768(-2^15) 0 二进制补码 是 int 32 2,147,485,647(2^31 - 1) -2,147,483,648(-2^31) 0 二进制补码 l…
移位运算 :将整数转化为二进制(以补码的形式),按位平移. <<     左移 >>     右移 >>>   无符号右移 << 右移: 按位做平移,末位用0补上(正负数都一样) a << n; 如果 a 是  byte.short.int 类型 那么 a << n 就是  a << (n%32) int a = 5; System.out.println(a<<3);     //输出 40 Syste…
一.背景知识 整数在内存中是以二进制的形式存在的,而且存的是该整数的补码.最高位代表符号位,正数为0,负数为1 正数的补码是其二进制本身,负数的补码则是 符号位保持1不变,其他位按位取反再加1,+0和-0的补码相同,都是0. 负数在进行按位与运算时是以补码形式参与运算.(这个很好理解,因为负数在内存中本身就是以补码存储的) 二.移位运算 下面介绍三种移位运算, 首先我们对5作运算. 5在内存中的存储形式为:0000 0000 0000 0000 0000 0000 0000 0101 1.左移<…
java中移位运算符有三种“<<”.“>>”.“>>>”,没有“<<<”运算符. “<<”运算符将二进制位进行左移,低位用0来填充: “>>”运算符将二进制位进行右移,用符号位填充高位: “>>>”运算符将二进制位进行右移,但是是用0来填充高位. 注意:对移位运算符右侧的参数需要进行模32的运算,如,1<<35与1<<3是相同的,都为8. (当左侧的操作数是long类型时,右侧操作…
类型取值范围 short 是1字节,即8位.而且 Java 中只有有符号数,所以最大值 0111,1111=2^7-1. 同时计算机中以补码形式存负数,所以可以多表示一个数,则最小值 1000,0000=-2^7=-128. [因为原码中有 +0 -0,所以反码也一样] 图源 那么如果我传入的 byte 超过最大值 127 呢? byte a = (byte)234; System.out.println(a); // 输出-22 234原码: 11101010,因为 byte 高位为符号位,所…
参考下面这篇文章 http://blog.csdn.net/gaowen_han/article/details/7163104 http://jinguo.iteye.com/blog/540150 请用最有效率的方法计算出2乘以8等于几? 参考文档 [转]java中char,byte,short的移位操作…
一.二进制,位运算,移位运算 1.二进制 对于原码, 反码, 补码而言, 需要注意以下几点: (1).Java中没有无符号数, 换言之, Java中的数都是有符号的; (2).二进制的最高位是符号位, 0表示正数, 1表示负数; (3).正数的原码, 反码, 补码都一样; (4).负数的反码=它的原码符号位不变, 其他位取反; (5).负数的补码=它的反码+1; (6).0的反码, 补码都是0; (7).在计算机运算的时候, 都是以补码的方式来运算的. 2.位运算 Java中有4个位运算, 分别…
一.二进制,位运算,移位运算 1.二进制 对于原码, 反码, 补码而言, 需要注意以下几点: (1).Java中没有无符号数, 换言之, Java中的数都是有符号的; (2).二进制的最高位是符号位, 0表示正数, 1表示负数; (3).正数的原码, 反码, 补码都一样; (4).负数的反码=它的原码符号位不变, 其他位取反; (5).负数的补码=它的反码+1; (6).0的反码, 补码都是0; (7).在计算机运算的时候, 都是以补码的方式来运算的. 2.位运算 Java中有4个位运算, 分别…
一.位运算 Java中有4个位运算,它们的运算规则如下: (1)按位与 (&)  :两位全为1,结果为1,否则为0: (2)按位或  (|)   :两位有一个为1,结果为1,否则为0: (3)按位取反(~):0 变 1, 1变0: (4)按位异或(^):两位,如果相同,结果为0:如果不同,结果为1: 注意:      (1)位运算中的 符号位(最高位)也跟着变; (2)位运算符与逻辑运算符(逻辑与&&.逻辑或||.逻辑非! )有点相似.但是,逻辑运算符只能操作boolean变量  …
一.位运算 (1)按 位 与 & 如果两个相应的二进制形式的对应的位数都为1,则结果为1,记为同1为1,否则为0.首先我们看一下对正数的运算        分别看一下正数和负数的具体运算步骤        正数直接取二进制运算,负数取反加一得补码再运算,得到的结果符号位为0,不需要做任何操                                                                                                        …