位运算基本操作总结

    xiaoxiao2021-03-25  58

    一:位运算基本操作知识点

    1. 左移操作 a << b

    将A的二进制表示的每一位向左移B位,左边超出的位截掉,右边不足的位补0 A = 1100  B = 2 A << B = 110000

    每左移一位,数值乘以2。

    2.右移操作 A >> B , A >>> B

    右移操作分为逻辑右移,和算术右移 算术右移是带符号的右移,逻辑右移是不带符号的右移。 算术右移:将A的二进制表示的每一位向右移B位,右边超出的位截掉,左边不足的位补符号位的数。 逻辑右移:将A的二进制表示的每一位向右移B位,右边超出的位截掉,左边不足的位补0。 C语言:只有逻辑右移 A >> B JAVA 和 Python中:算术右移 A >> B , 逻辑右移 A >>> B

    A = 11111111111111111111111110000001 B = 2 A >> B = 11111111111111111111111111100000 A >>> B = 00111111111111111111111111100000

    每右移一位,数值除以2

    3.按位与操作 a & b

    将A和B的二进制表示的每一位进行与操作,只有两个对应的二进制位都为1时,结果位才为1,否则为0. A = 001010 B = 101100 A & B = 001000

    4.按位或操作 a | b

    将A和B的二进制表示的每一位进行或操作,只要两个对应的二进制位有一个为1,结果位就为1,否则为0. A = 001010 B = 101100 A | B = 101110

    5.按位非操作 ~ a

    将A的二进制表示每一位进行取反操作,如果对应的二进制位为0,结果位为1,否则为0.  A = 00000000000000000000000000001010 ~A = 11111111111111111111111111110101

    6.按位异或操作 a ^ b

    将A和B的二进制表示的每一位进行异或操作,如果对应的二进制位不同,结果位为1,否则为0. A = 001010 B = 101100 A ^ B = 100110

    转载请注明原文地址: https://ju.6miu.com/read-38786.html

    最新回复(0)