我有一个小数值163,我需要对其进行一元“非”操作。在C ++和Java中,这看起来像~(163)
。基本上,我希望每一点都能翻转。
有没有办法在PowerShell中使用一元运算符或者如果需要的话,使用子例程?我还需要这个来翻转整个32位地址的所有位。换句话说,二进制163是0b10100011,但我希望翻转整个32位容器,包括最后的163(例如0b11111 ...... 01011100)。
答案 0 :(得分:7)
正如Bill_Stewart评论的那样,the -bnot
(binary not or bitwise not) operator做你想做的事。它适用于PowerShell 2.0。
请注意,PowerShell的默认整数通常是已签名的,此操作的结果将根据不同而不同。
您可能需要转换为其中一种无符号类型以获得所需的结果:
private static void RunWaiting(Control c, string text)
{
wf = new WaitingForm();
wf.drwbieSpinnerFrame.Text = text;
wf.ShowInTaskbar = false;
int[] tl = GetTopLefts(c);
wf.Top = (tl[0] + (c.Height / 2)) - (wf.Height / 2);
wf.Left = (tl[1] + (c.Width / 2)) - (wf.Width / 2);
wf.FormBorderStyle = FormBorderStyle.None;
wf.ControlBox = false;
wf.TopMost = true;
wf.StartPosition = FormStartPosition.Manual;
IsHolding = true;
Application.Run(wf);
}