最近,准备学数学基础,so我以为了解一下二进制和位运算符是颇有用的。spa
二进制设计
先看看度娘怎么说code
二进制是计算技术中普遍采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。计算机中的二进制则是一个很是微小的开关,用“开”来表示1,“关”来表示0。orm
其实就是用“1”和“0”来表示数,二进制和十进制的转换也是挺有用的,度娘讲的就挺好。blog
位运算符get
OK,接下来看一看位运算符。数学
位操做是程序设计中对位模式按位或二进制数的一元和二元操做。 //来自度娘
it
定义什么的都不重要,直接上操做form
按位与运算符"&"是双目运算符。 其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,不然为0。参与运算的数以补码方式出现。程序设计
1 9&5 2 00001001 //9的二进制补码 3 & 00000101 //5的二进制补码 4 = 00000001 //1的二进制补码
1 9|5 2 00001001 //9的二进制补码 3 | 00000101 //5的二进制补码 4 = 00001101
1 9^5 2 00001001 3 ^ 00000101 4 = 00001100
1 ~(1001) 2 = 0110
1 x<<1 //至关于x*2 2 x>>1 //至关于x/2 3 x<<2 //至关于x*4 4 x>>2 //至关于x/4 5 //…… 6 //以此类推