在Powershell中将无符号整数初始化为0xFFFFFFFF的正确方法是什么?

时间:2017-12-19 20:38:28

标签: powershell

我的CRC计算算法要求我将32位无符号整数变量初始化为0xFFFFFFFF(所有1都是二进制的,这样我就可以将变量用作位掩码)。如果我只是写[uint32]$r=0xFFFFFFFF,我会收到以下错误消息:

  

无法转换价值" -1"输入" System.UInt32"。错误:"对于UInt32,值太大或太小。"

我目前使用的语法是[uint32]$r="0xFFFFFFFF",但是从字符串到整数转换看起来有点过头了(我来自C / C ++编程世界)。我对Powershell很陌生,所以我想知道Powershell是否有更有效/直接的方式来初始化这样的变量。

2 个答案:

答案 0 :(得分:5)

[UInt32]::MaxValue

怎么样?

此常量的值为4,294,967,295;也就是十六进制0xFFFFFFFF。

答案 1 :(得分:0)

PowerShell没有UInt32文字的任何语法,但您可以使用the l type postfixInt64字面值转换为[uint32]

[uint32]0xFFFFFFFFl