【Java的位运算(bitwise operators)】教程文章相关的互联网学习教程文章

JavaSE学习(三):按位运算—数据结构(顺序、分支、循环)【代码】

第一节 按位运算1.1按位运算符& |1.1.1按位运算符可作算术运算做算术运算先将十进制转为二进制数,再按位计算,按位与全部为1,才为1,只要有0则为0;按位或只要有1则为1,全部为0才为0。最后按位输出再转为十进制。7&3 = 3 ----- 0111 & 0011 == 0011 37|3 = 7 ----- 0111 & 0011 == 0011 71.1.2按位运算符可作逻辑运算按位与&和按位或| 做逻辑功能时,与逻辑与&& 逻辑||逻辑功能一样,不一样的是没有短路功能。面试题:& ...

Java 位运算

1.源码 2.反码 3.补码注意的规则:1.正数的三个码都是一致的,不需要转换2.负数必须转换成补码才能运算3.计算机真正参与运算的是补码4.在java中所有的数字都是由符号的, 符号位0正数,1负数5.符号位就是最高位,也是最左边的一位6.负数的反码=符号位不变+其他位取反7.负数的补码=反码+1算数右移和算数左移算数右移: >>:位移的方向,右 1/2/3……:位移的位数1.正数符号位不变2.低位溢出删除3.高位补04.负数先转换成补码再进行算数...

Java基础-一文搞懂位运算

在日常的Java开发中,位运算使用的不多,使用的更多的是算数运算(+、-、*、/、%)、关系运算(<、>、<=、>=、==、!=)和逻辑运算(&&、||、!),所以相对来说对位运算不是那么熟悉,本文将以Java的位运算来详细介绍下位运算及其应用。 1、 位运算起源  位运算起源于C语言的低级操作,Java的设计初衷是嵌入到电视机顶盒内,所以这种低级操作方式被保留下来。所谓的低级操作,是因为位运算的操作对象是二进制位,但是这种低级操作...

Java位运算【代码】

(很早的笔记,保存下)与或非整数位运算:左移:正数右端补0,负数右端补1右移:正数左端补0,负数左端补1强制右移:不论正负数左端补0取反int a = 5; int b = -5; int c = (~5)+1; int d = a<<1; int e = b<<1; int f = a>>1; int g = b>>1; int h = a>>>1; int i = b>>>1;System.out.println("a:"+Integer.toBinaryString(a)); System.out.println("b:"+Integer.toBinaryString(b)); System.out.println("c:"+Integer.toBinaryS...

java中位运算【代码】

java中位运算System.out.println(6&3); //2 0010 且System.out.println(6|3); //7 0111 或System.out.println(6^3); //5 0101 异或System.out.println(6>>2); //1 0000 将0110 向右移动两位System.out.println(-6>>2); //-2 0000 将0110 向右移动两位System.out.println(6<<3); //48 0011 0000 向左移动三位 6*2^3System.out.println(6>>>2); //1 Java也添加了一种“无符号”右移位运算符(>>>),它使用...

Java位运算加密【图】

创建一个类,通过位运算中的”^"异或运算符把字符串与一个指定的值进行异或运算,从而改变字符串每个字符的值,这样就可以得到一个加密后的字符串。当把加密后的字符串作为程序输入内容,再与那个指定的值进行异或运算,实现把加密后的字符串还原为原有字符串的值。?1234567891011121314importjava.util.Scanner;publicclassExample { publicstaticvoidmain(String[] args) { Scanner scan = newScanner(System.in); ...

JavaScript 位运算笔记【代码】

之前一直以为,在js的位运算中,双精度浮点数在内部会先被转成32位整数,再执行位运算,然后再转为64位数值,因此效率极低。今天实验发现,对浮点执行位运算只会导致数值不准确,而不会导致效率低下,相比乘法,左移位要快66%(其实就是浮点运算与整数运算的差距)。 以下结果在 IE 7 ~ IE 10 上测试得出 技巧1:移位运算比乘除法快(当因数是2的幂数) b = a << 1;//大概快 6.8%技巧2:奇偶判断 b = a & 1;//0位与1相与,相比于 x...

Java位运算基础知识【代码】【图】

在学习Java运算时,补充学习Java位运算。Java位运算位运算都是针对整数的补码进行位运算。& 按位与运算先将整数转换为补码 ,然后执行按位与运算,最后将结果返回为十进制,它有如下几个规律:(1)正数&其他数=正数 考虑最高位为0,按位与都为0(2)偶数&其他数=偶数 考虑最低位为0,按位与都为0(3)0&其他数=0 按位与后位数全是0(4)1&奇数=1,1&偶数=0 通过它可以快速判断一个数是奇数还是偶数| 按位或运算先将整数转换为补码...

JAVA位运算【代码】

/* 位运算 二进制 补码 基本的 &(与) |(或) ^(异或) ~(按位取反) 连接的是数值(除了布尔类型的) 一般我们做案例,用的数据都是采用整数 (int)*/class OperatorDemo{ public static void main(String[] args) { int a = 3; int b = 4; //位与& System.out.println(a&b);//0 //位或 System.out.println(a|b);//7 //位异或 System.out.println(a^b);//7 //按位取反 System.out.pri...

位运算,算术、逻辑运算详解-java篇

/** * 功能: * 位运算符,原码、反码、补码规则: * 1.二进制的最高位是符号位:0表示正数,1表示负数 * 2.正数的原码、反码、补码都一样 * 3.负数的反码=它的原码符号位不变,其他位取反 * 4.负数的补码=它的反码+1 * 5.0的反码,补码都是0 * 6.java没有无符号数,换言之,java中的数都是有符号的 * 7.在计算机运算时候,都是以补码的方式来运算的 * * 位运算规则: * 按位与&:两位全为1,结果为1 * 按位或|:两位有一个为1,结...

Java位运算【图】

1、原码、反码、补码之间的转换 计算机存储都是按补码进行存储的,正数的补码和原码一样,对负数进行位运算的时候要先算出它的补码。 1.1正数的原码、反码、补码都是相同的。 1.2 负数的反码:最高位符号位不变,其他位置取反负数的补码:反码加1就得到补码 2.位运算 &:按位与 0&1 = 0 0&0 = 0 1&1 = 1 例子: 5 & 9 = 1 | :按位或 0 | 0 = 0 1 | 0 = 1 1 | 1 = 1 例子:5 ^ 9 = 12 ~ :按位非 按位非首先获取补码,对...

java位运算

1.与运算符--“&”两个操作数中位都为1,结果才为1,否则结果为0 2.或运算符--“|”两个位只要有一个为1,那么结果就是1,否则就为0 3.非运算符--“~”如果位为0,结果是1,如果位为1,结果是0 4.异或运算符--“^”两个操作数的位中,相同则结果为0,不同则结果为1

java笔试(位运算)【代码】

Java提供的位运算符有:左移( << )、右移( >> ) 、无符号右移( >>> ) 、位与( & ) 、位或( | )、位非( ~ )、位异或( ^ ),除了位非( ~ )是一元操作符外,其它的都是二元操作符。 1、左移( << ) Test1、将5左移2位:public class Test { public static void main(String[] args) { System.out.println(5<<2);//运行结果是20 } } 运行结果是20,但是程序是怎样执行的呢?首先会将5转为2进制表示形式(java中,整数默认就是int类型,也...

Java> 有趣的byte,byte位运算【代码】

byte存储范围,表示范围 我们知道byte代表1个字节,数据存储的范围:[0x00, 0xFF]。byte变量表示值的范围:[-128, 127]。 下面这段代码并不是输出128,而是输出-128,因为byte变量表示值的范围为[-128, 127]。128刚刚好超出上界127有1单位,溢出为-128。 300对应byte值也不是300,而是按byte长度(1字节)截取存储内容后的值。 可以看到,300 = 0b100101100,截取1byte长度后,值为0b00101100,也就有 b = 0b00101100 => b = 44 by...

转:java中的位运算【代码】

1.^(亦或运算) ,针对二进制,相同的为0,不同的为1public static void main(String[] args) {System.out.println("2^3运算的结果是 :"+(2^3));//打印的结果是: 2^3运算的结果是 :1 }2 =======>0010 3 =======>0011 2^3就为0001,结果就是1 2.&(与运算) 针对二进制,只要有一个为0,就为0 还是上述的例子public static void main(String[] args) { System.out.println("2&3运算的结果是 :"+(2&3)); //打印的...

运算 - 相关标签