PowerShell 中的一元 "Not" 或位翻转运算符?
Unary "Not" or bit-flip operator in PowerShell?
我有一个十进制值 163,我需要对其执行一元 "not" 运算。在 C++ 和 Java 中,这看起来像 ~(163)
。本质上,我希望每一点都翻转。
有没有办法在 PowerShell 中使用一元运算符或子例程(如果需要)执行此操作?我还需要它来翻转整个 32 位地址的所有位。换句话说,二进制的 163 是 0b10100011,但我希望翻转整个 32 位容器,包括末尾的 163(例如 0b11111......01011100)。
正如 Bill_Stewart 评论的那样,the -bnot
(binary not or bitwise not) operator 做你想做的事。它适用于 PowerShell 2.0。
请注意,PowerShell 的默认整数通常是有符号的,并且此操作的结果会有所不同。
您可能需要转换为其中一种无符号类型以获得您想要的结果:
-bnot ([uint32]163)
我有一个十进制值 163,我需要对其执行一元 "not" 运算。在 C++ 和 Java 中,这看起来像 ~(163)
。本质上,我希望每一点都翻转。
有没有办法在 PowerShell 中使用一元运算符或子例程(如果需要)执行此操作?我还需要它来翻转整个 32 位地址的所有位。换句话说,二进制的 163 是 0b10100011,但我希望翻转整个 32 位容器,包括末尾的 163(例如 0b11111......01011100)。
正如 Bill_Stewart 评论的那样,the -bnot
(binary not or bitwise not) operator 做你想做的事。它适用于 PowerShell 2.0。
请注意,PowerShell 的默认整数通常是有符号的,并且此操作的结果会有所不同。
您可能需要转换为其中一种无符号类型以获得您想要的结果:
-bnot ([uint32]163)