Java中的二进制及基本的位运算
二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。计算机中的二进制则是一个非常微小的开关,用“开”来表示1,“关”来表示0。
那么Java中的二进制又是怎么样的呢?让我们一起来揭开它神秘的面纱吧。
一、Java内置的进制转换
有关十进制转为二进制,和二进制转为十进制这种基本的运算方法这里就不展开讲了。
在Java中内置了几个方法来帮助我们进行各种进制的转换。如下图所示(以Integer整形为例,其他类型雷同):
1,十进制转化为其他进制:1 二进制:Integer.toHexString(int i);
2 八进制:Integer.toOctalString(int i);
3 十六进制:Integer.toBinaryString(int i);
2,其他进制转化为十进制:1 二进制:Integer.valueOf("0101",2).toString;
2 八进制:Integer.valueOf("376",8).toString;
3 十六进制:Integer.valueOf("FFFF",16).toString;
3,使用Integer类中的parseInt()方法和valueOf()方法都可以将其他进制转化为10进制。
不同的是parseInt()方法的返回值是int类型,而valueOf()返回值是Integer对象。
二、基本的位运算
二进制可以和十进制一样加减乘除,但是它还有更简便的运算方式就是——位运算。比如在计算机中int类型的大小是32bit,可以用32位的二进制数来表示,所以我们可以用位运算来对int类型的数值进行计算,当然你也可以用平常的方法来计算一些数据,这里我主要为大家介绍位运算的方法。我们会发现位运算有着普通运算方法不可比拟的力量。更多位运算应用请转移到我下篇博文《神奇的位运算》
首先,看一下位运算的基本操作符:
优点:
特定情况下,计算方便,速度快,被支持面广
如果用算数方法,速度慢,逻辑复杂
位运算不限于一种语言,它是计算机的基本运算方法
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
(一)按位与&
两位全为1,结果才为1
0&0=0;0&1=0;1&0=0;1&1=1
例如:51&5 即0011 0011 & 0000 0101 =0000 0001 因此51&5=1.
特殊用法
(1)清