位操作符
- 因为位操作符在数值都表示的最底层的操作,因此性能上比其他操作符要好,只做了解,性能好,但是会导致代码可读性降低
- 二进制
- 二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。计算机中的二进制则是一个非常微小的开关,用“开”来表示1,“关”来表示0。数字计算机只能识别0和1。简单,易于电子方式的实现。
- 十进制转二进制
- 用十进制数字除以2,取余数,用得到的结果继续除以2,一直到1除以2,然后求倒序就是二进制了
- 例如:10,10/2 = 5 余 0 ;5/2 = 2余1;2/2 = 0;这时候除尽了,则进行最后一次计算,1/2除不开,直接等于1即可;最后组合余数为:0101,然后倒序就是1010,因此10转为二进制就是1010了
- 因此,9的二进制就是9/2=4余1,4/2=2余0,2/2=0余0,1/2余1,得1001,倒序9的2进制就是1001
- 39的二进制就是:39/2=19余1,19/2=9余1,9/2=4余1,4/2=2余0,2/2=0余0,1/2余1,组合余数:111001,倒序,39的二进制就是100111
- 高位补0
- 在内存中某一个类型的值是有固定长度的,比如int类型的是32位的,10转为二进制位1010,那么就会在1010前面补28个0,补为32位进行存储
- 一般正数高位补0,负数高位补1
- 二进制转十进制
- 按权相加法
- 10的二进制是1010,从右往左按下标来数,0的下标是0,1为1,0为2,1为3,把这些二进制中数字是1的下标当做2的幂进行相加,那么1010 = 0 + 2^1