位操作符

2018-03-31  本文已影响0人  蘑菇酱960903

负数表示负数绝对值的二进制的反码加一

按位非 (~)

~num ---> 返回num的反码 本质:操作数的负值减1,但是按位非实在数值表示的最底层执行操作的,所以运行速度会更快

按位与 (&)

num1 & num2 ----> num1和num2数值的二进制的每一位对齐,当两个数值同为1时返回1,有0时返回0

按位

num1 | num2 --->num1和num2数值的二进制的每一位对齐,当两个数值有一个为1时,返回1,两个都为0时返回0

按位异或 (^)

num1 ^ num2 ---> num1和num2数值对应为上只有一个1时返回,如果两个同为1或者0返回0 特点:a两次异或同一个数返回a (a = a ^ b ^ b 返回a)
用途:

左移 (<<)

num << 5 ---> 这个操作符会将数值的所有位向左移动指定的位数,用0补充,左移不会影响操作数的符号位,如果将 -2 << 5 得到 -64

有符号右移 (>>)

num >> 5 ----> 这个操作符会将数值向右移动,但保留符号位,用符号位填充空位

无符号位右移 (>>>)

num >>> 5 ----> 让数值包括符号位会向右移动,正数的无符号右移与有符号右移一致。而负数的无符号位移会先得出二进制码(负数的绝对值的二进制码的反码),再右移用0补充,最后转换成十进制

上一篇 下一篇

猜你喜欢

热点阅读