我的CRC计算算法要求我将32位无符号整数变量初始化为0xFFFFFFFF(所有1都是二进制的,这样我就可以将变量用作位掩码)。如果我只是写[uint32]$r=0xFFFFFFFF
,我会收到以下错误消息:
无法转换价值" -1"输入" System.UInt32"。错误:"对于UInt32,值太大或太小。"
我目前使用的语法是[uint32]$r="0xFFFFFFFF"
,但是从字符串到整数转换看起来有点过头了(我来自C / C ++编程世界)。我对Powershell很陌生,所以我想知道Powershell是否有更有效/直接的方式来初始化这样的变量。
答案 0 :(得分:5)
[UInt32]::MaxValue
。
此常量的值为4,294,967,295;也就是十六进制0xFFFFFFFF。
答案 1 :(得分:0)
PowerShell没有UInt32
文字的任何语法,但您可以使用the l
type postfix将Int64
字面值转换为[uint32]
:
[uint32]0xFFFFFFFFl