首页 > 试题广场 >

()运算符和()运算符分别把一个值的位向左和向右移动

[不定项选择题]
()运算符和()运算符分别把一个值的位向左和向右移动
  • <<
  • >>
  • &&
  • ||

往哪移尖朝哪呗

发表于 2019-07-24 17:31:46 回复(0)
白给🙃

发表于 2019-07-21 15:55:42 回复(1)
看方向就行了

建议这种题不要过审了,真没意义
发表于 2020-07-07 01:18:30 回复(1)
知识点:&与&&、|与||、^、<<、>>、~、>>>运算符
  1. &(按位与)

    &按位与的运算规则是将两边的数转为二进制数,然后运算的最终值,运算规则即(两个为真才为真)1&1=1、1&0=0、0&0=0、0&1=0。 3的二进制位为0000 0011,5的二进制位是0000 0101,011&101=0000 0001,最终值为1。 7的二进制位为0000 0111,111&101=0000 0001,最终值为5。

  2. &&(逻辑与)

    &&逻辑与也称为短路逻辑与,先运算&&左边的表达式,一旦为假,后续不管多少表达式,均不再计算,一个为真,再计算右边的表达式,两个为真才为真。

  3. |(按位或)

    |按位或和&按位与计算方式都是转换二进制再计算,不同的是运算规则(一个为真即为真)1|0 = 1 , 1|1 = 1 , 0|0 = 0 , 0|1 = 1

    6的二进制位0000 0110 , 2的二进制位0000 0010 , 110|010为110,最终值0000 0110,故6|2等于6

  4. ||(逻辑或)

    逻辑或||的运算规则是一个为真即为真,后续不再计算,一个为假再计算右边的表达式。

  5. ^(异或运算符)

    ^异或运算符顾名思义,两个值相异结果为真,其运算规则为1^0 = 1 , 1^1 = 0 , 0^1 = 1 , 0^0 = 0

    5的二进制位是0000 0101 , 9的二进制位是0000 1001,也就是0101 ^ 1001,结果为1100 , 00001100的十进制位是12

  6. <<(左移运算符)

    5<<2的意思是5的二进制位往左移两位,即0000 0101左移为0001 0100成20(正数左边第一位补0,负数补1,等于乘于2的n次方)。

  7. >>(右移运算符)

    凡位运算符都是把值先转换成二进制,再进行后续的处理。5的二进制位是0000 0101,右移两位就是把101左移后为0000 0001,正数左边第一位补0,负数补1,等于除于2的n次方,结果为1。

  8. ~(取反运算符)

    取反就是1变0,0变1。5的二进制位是0000 0101,取反就是1111 1010,即-6

  9. >>>(无符号右移运算符)

    • 正无符号数右移

      无符号右移运算符和右移运算符的主要区别在于负数的计算,因为无符号右移是高位补0,移多少位补多少个0。 15的二进制位0000 1111,右移二位为0000 0011结果为3。

    • 负无符号数右移

      -6的二进制位是6的二进制位取反再加1,6的二进制也就是0000 0000 0000 0000 0000 0000 0000 0110,取反后加1就是1111 1111 1111 1111 1111 1111 1111 1010,右移三位0001 1111 1111 1111 1111 1111 1111 1111

                 
发表于 2023-07-24 20:10:28 回复(1)
尖朝那就往那移
发表于 2019-12-29 14:02:31 回复(0)
AB还是BA
发表于 2023-09-22 21:29:40 回复(0)
分别不是|吗
发表于 2022-09-05 20:23:33 回复(0)
浪费时间
发表于 2021-01-06 21:45:40 回复(0)
直觉:箭头指哪往哪移 通过这道题证实了有时候直觉还是可信的😊
发表于 2020-09-23 12:47:52 回复(0)
犹豫就会白给
发表于 2020-03-06 22:57:17 回复(0)