二进制

时间:2019-01-18
本文章向大家介绍二进制,主要包括二进制使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1.适合计算机的进制

二进制:计算机内部用二进制:运算简单,简化了计算机结构

其他进制:

八进制:适用于12位和36位计算机系统

              标志的开头用0表示,用0~7的数字表示。

16进制:用0~9,A,B,C,D,E,F

               表示表达长度短,变得更常用。标志的开头用0x表示。

2.二进制位运算

运算符 运算 示例
& 与运算 6 & 3 = 2
| 或运算 6 | 3 = 7
^ 异或运算 6 ^ 3 = 5 
~ 反码 ~6 = -7
<< 左移 3 << 2 = 12      3*2*2=12
>> 右移 3 >> 1 = 1        3/2=1
>>> 无符号右移 3>>>1 = 1        3/2=1

优点:特定情况下,计算方便,速度快,被支持面广

            如果用算数方法,速度慢,逻辑复杂

(1)按位与&:

两位全为1,结果才为1。

0&0=0;0&1=0;1&0=0;1&1=1;

如6的二进制结果为:0110 ;3的二进制结果为:0011 

与运算结果为:0001      所以结果为:2

位运算的特殊用法:

1)清零。如果想将一个单元清零,即使其全部二进制位为0,只要与一个各位都为0的数值相与,结果为零。

2)取一个数中指定位。例:设X=10101110,取X的低4位,用X&00001111 = 00001110即可得到。 

     方法:找一个数,对应X要取的位,该数的对应位为1,其余位为0,此数与X进行“与运算”可以得到X中的指定位。

(2)按位或&:

只要有一个为1,结果就为1。

0&0=0;0&1=1;1&0=1;1&1=1;

如6的二进制结果为:0110 ;3的二进制结果为:0011 

或运算结果为:0111      所以结果为:7

或运算的特殊用法:

1)常用来对一个数据的某些位置1

     例:将X=1010 0000的低4位置为1,用X|0000 1111 = 1010 1111 即可得到。

     方法:找一个数,对应X要置1的位,该数的对应位为1,其余位为0,此数与X进行“或运算”可使X中的某些位置1。

(3)异或运算^:

两个相应位为“异”(值不同),则改位结果为1,否则为0。

0&0=0;0&1=1;1&0=1;1&1=0;

如6的二进制结果为:0110 ;3的二进制结果为:0011 

异或运算结果为:0101      所以结果为:5

异或运算的特殊用法:

1)使特定位翻转。找一个数,对应X要翻转的各位,该数的对应位为1,其余位为0,此数与X对应位异或即可。

      例:X=1010 1110,使X低4位翻转,用X ^ 0000 1111 = 1010 0001即可得到。

2)与0相异或,保留原值 

      例:X ^ 0000 0000 = 1010 1110即可得到。

3)用来进行两个变量交换值更快,效率更高。

      两个变量交换值的方法:
      I:借助第三个变量来实现

           C=A;A=B;B=C;

      II:利用加减法实现两个变量的交换:

            A=A+B;B=A-B;A=A-B;

      III:用位异或运算来实现,也是效率最高。

            原理:利用一个数异或本身等于0和异或运算符合交换率。

            如:A=A^B;B=A^B;A=A^B;           

(4)取反运算~:

对一个二进制数按位取反,则将0变为1,1变为0。

~1=0;~0=1;

(5)左移运算<<:

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

如2的二进制位为0010,向左边移动1位则变为了0100。所以 2<<1 = 4