Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash “实际上是怎么做的?”&~&引用;工作_Bash_Shell_Unix_Binary_Bit Manipulation - Fatal编程技术网

Bash “实际上是怎么做的?”&~&引用;工作

Bash “实际上是怎么做的?”&~&引用;工作,bash,shell,unix,binary,bit-manipulation,Bash,Shell,Unix,Binary,Bit Manipulation,我想知道它在Unix中是如何工作的: user$ i=5 user$ echo $((i &~ 1)) 4 括号内发生了什么?和&和~都是位运算符 ~1是产生-2 5&-2是产生4的二进制位AND运算 和&和~都是位运算符 ~1是产生-2 5&-2是产生4的二进制位AND运算 好的,明白了 二进制5是101 二进制1是001->~1是110 101和110->100这是4的小数好的,明白了 二进制5是101 二进制1是001->~1是110 101&110->100是一个一元运

我想知道它在Unix中是如何工作的:

user$ i=5
user$ echo $((i &~ 1)) 

4

括号内发生了什么?

&
~
都是位运算符

  • ~1
    是产生
    -2
  • 5&-2
    是产生4的二进制位AND运算

&
~
都是位运算符

  • ~1
    是产生
    -2
  • 5&-2
    是产生4的二进制位AND运算
    • 好的,明白了

      二进制5101

      二进制1001->~1110

      101110->100这是4的小数

      好的,明白了

      二进制5101

      二进制1001->~1110


      101&110->100是一个一元运算符,取一个参数。
      ~
      是一元运算符,取一个参数。好的,知道了,二进制5是101二进制1是001->~1是110 101&110->100,取四个小数,明白了,二进制5是101二进制1是001->~1是110101&110->100,是4位小数