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

问题描述 投票:3回答:2

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

无法将值“-1”转换为“System.UInt32”类型。错误:“对于UInt32,值太大或太小。”

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

powershell
2个回答
5
投票

怎么样[UInt32]::MaxValue

这个常数的值是4,294,967,295;也就是十六进制0xFFFFFFFF。


0
投票

PowerShell没有UInt32文字的任何语法,但您可以使用Int64[uint32]文字投射到the l type postfix

[uint32]0xFFFFFFFFl
© www.soinside.com 2019 - 2024. All rights reserved.