位运算,刚刚学到,以前也有涉猎,不过忘了。现在整理了一下

时间:2022-05-09 18:32:11

位运算我只举个例子。主要的不是拿着数直接求值。关键是要知道步骤。

有步骤了,才好搞嘛!

  我第一个就搞~取反运算

    我多举个:《32位》1.~1  

                源码二进制:  00000000  00000000  00000000  00000001

               取反码减去1:    11111111  11111111  11111111   11111101

                        

                  取反:    10000000  00000000  00000000  00000010     得-2

             1.~2

              00000000  00000000  00000000  00000010

              11111111  11111111  11111111  11111100

              10000000  00000000  00000000  00000011                得-3

  第二个步骤与第一个步骤都是一样的依次省略了。

             3.~16

              00000000  00000000  00000000  00010000

              11111111  11111111  11111111  11101110

              10000000  00000000  00000000  00010001               得-17

 

  ~取反的是需要减去1

  注意:意思就是《反码是 补码 -1》

      最高位的那个1就是负数,人家说的符号位不变的意思,就是说的机器码上设置的那个,负数就是开头那个1,1代表负数了。

     负数的补码 = 其反码 +1,也就是说第二步反码加上1

  第二个没有了,>>和<<这两个是根据二进制位看走位,也可以去百科上看那个公式

  其实只要记住要么乘以2,要么除以2,因为都是以2为机制的运算的

  当然我说的都是大白话,没有什么专业术语,你能看懂就看懂了。看不懂就多在编译器上面都弄数字敲敲看。