我的CRC计算算法要求我将32位无符号整数变量初始化为0xFFFFFFFF(二进制的全1),以便我可以将该变量用作位掩码。如果我只是写[uint32]$r=0xFFFFFFFF
,我收到以下错误信息:
无法将值“-1”转换为“System.UInt32”类型。错误:“对于UInt32,值太大或太小。”
我目前使用的语法是[uint32]$r="0xFFFFFFFF"
,但它似乎有点超过顶部的字符串到整数转换(我来自C / C ++编程世界)。我对Powershell很新,所以我想知道Powershell是否有更高效/直接的方式初始化这样的变量。
怎么样[UInt32]::MaxValue
。
这个常数的值是4,294,967,295;也就是十六进制0xFFFFFFFF。
PowerShell没有UInt32
文字的任何语法,但您可以使用Int64
将[uint32]
文字投射到the l
type postfix:
[uint32]0xFFFFFFFFl