1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > C++位运算符(与 或 异或 取反 左移 右移)

C++位运算符(与 或 异或 取反 左移 右移)

时间:2021-06-08 06:16:56

相关推荐

C++位运算符(与 或 异或 取反 左移 右移)

与[ & ]:同为1时,结果为1

3 & 43(0000 0011)4(0000 0100)-------------0(0000 0000)

或[ | ]:同为0时,结果为0

3 | 43(0000 0011)4(0000 0100)-------------7(0000 0111)

异或[ ^ ]:相同为0,不同为1

3 ^ 43(0000 0011)4(0000 0100)-------------7(0000 0111)

左移[ << ]:各二进位全部左移若干位,高位丢弃,低位补0

1、左移可看作整数M乘以2的N次方

2、"<<"右边的数字就是N,左边的数字就表示这个整数M

3<<4 3(0000 0011)待移位的数字6(0000 0110)左移第一位,左移一位之后,最右边的将会缺失,所以不足位数,补一位0,最左边将会多出一位,所以舍掉一位12(0000 1100)左移第二位,最右边再补一位0,最左边再舍掉一位24(0001 1000)左移第三位,最右边再补一位0,最左边再舍掉一位48(0011 0000)左移第四位,最右边再补一位0,最左边再舍掉一位= 3 * 2⁴ = 3 * 16 = 48

右移[ >> ]:各二进位全部右移若干位,低位丢失,高位补0

右移可看作整数M除以2的N次方

"<<"右边的数字就是N,左边的数字就表示这个整数M

8 >> 28(0000 1000)待右移的数字4(0000 0100)右移第一位,最左边将会缺失一位,不足位数补一位0,最右边将会多出一位,所以舍掉最右边的一位2(0000 0010)右移第二位,最左边再补一位0,最右边再舍掉一位= 8 / 2²= 8 / 4= 2

取反[ ~ ]:0变1,1变0

按位取反:二进制每一位取反,0变1,1变0。~9的计算步骤:转二进制:0 1001计算补码:0 1001按位取反:1 0110转为原码:按位取反:1 1001 末位加一:1 1010符号位为1是负数,即-10“~x”的结果为“-(x+1)”

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。