powershell - PowerShell 中的一元 "Not"或位翻转运算符?

标签 powershell bit-manipulation powershell-2.0 bit

我有一个十进制值 163,我需要对其进行一元“非”运算。在 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)

关于powershell - PowerShell 中的一元 "Not"或位翻转运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41578517/

相关文章:

powershell - UWP应用的安装失败,错误为0x80070005:添加磁贴失败,出现意外错误

powershell - 如何获取使用 Copy-item 复制的文件数

binary - x-y = x+¬y+1 问题

Powershell v2::加载 COM 互操作 DLL

powershell - 过滤 Invoke-RestMethod 结果

powershell - 如何在 PowerShell 中将下划线附加到字符串变量而不解释 .ps1 文件中的回车符?

windows - 循环批处理文件

c - 在位字段的平面实现中获取所需位的字节地址?

c - 用按位运算符替换 “!=”

xml - 如果许多条目具有相同的节点名称,如何正确定位 xml 节点?