二进制的一些知识

来源:互联网 发布:php 协程 异步 编辑:程序博客网 时间:2024/05/14 09:25

1什么是二进制?

所谓二进制,也就是计算机运算时用的一种算法。二进制只有一和零组成。比方说吧,你上一年级时一定听说过进位筒”&“数位筒吧!十进制是个位上满十根小棒就捆成一捆,放进十位筒,十位筒满十捆就捆成一大捆,放进百位筒……二进制也是一样的道理,个位筒上满2根就向十位进一,十位上满两根就向百位进一,百位上满两根……二进制是世界上第一台计算机上用的算法,最古老的计算机里有一个个灯泡,当运算的时候,比如要表达,第一个灯泡会亮起来。要表达,则第一个灯泡熄灭,第二个灯泡就会亮起来。随着科技的发展,二进制已经被八进制十六进制取代了。

2:

二进制的运算:

     ①:与运算:& 

        两位全为1,结果才为1

      eg51&50011 0011 &0000 0101=0000 0001

      特殊用法:

         清零:如果想将一个单元清零,即将其全部二进制为0,只需与一个二进制位为0的数值相与;

           取一个数值中的指定位:找一个数,对应X要取的位,该数的对应位为1,其余为零,次数与X与运算,即可得到X                                        中指定位;

         Eg:设X=10101110,X的低四位,用X&0000 1111=0000 1110

      ②:按位或:|

           只要一个位=1,结果就为1

           eg:51|5  0011 0011 | 0000 0101=0011 0111   

           特殊用法:用来对某些数置为1

           eg:将X=10100000的低四位置1,用X|0000 1111=1010 1111

 

      ③:异或运算: ^

         不同为1,相同为01^1=0;0^0=0;1^0=1;0^1=1

         特殊用法:使特定位翻转;

             0异或运算,保留原值;

             两个变量交换值的方法;

             5^3=6 101^011=110

             5^6=3 101^110=011

             6^3=5 110^011=101

       ④:取反运算:~

           0->1;1->0;

 

        ⑤左移运算:<<

        将一个运算对象的各二进制位全部左移动若干位,左边的进制位丢弃,右边补0

         eg:2<<1=4 10->100

        ⑥右移运算:>>

          将一个运算对象的各二进制位全部右移动若干位,右边的进制位丢弃,左边补0

          eg:4>>1 100>10

        ⑦无符号右移运算 >>>

        各个位向右移动指定位数,右移后左边空出的用0来填充,右边丢弃

         eg-4>>>2

         1111011->0011110

 

        ⑧ 反码:原码取反

         补码:  反码+1

          eg:原码:00001110  反码:11110001  补码:11110010

            负数就是用补码来表示的,所以知道补码可以求助一个负数,步骤如下:

             1:先减一,2:取反,3:取负

 

 3:进制在JDK中的转换

 

十进制转二进制方法:

toBinaryString(int );

十进制转八进制方法:

toOctalString(int);

十进制转十六进制方法:

toHxeString

 

其他进制转十进制方法:

Integer.parseInt(“对应进制数”,int(对应目标进制));

二进制转十进制方法:

Integer.parseInt(100101”,2);

 

4java中的进制

小面加个视频,供参考点击看看视频