由于某种原因,当将 PowerShell 中的某些值从十六进制转换为十进制时,我得到了不正确的值。
例如: - 输入0xC0000000然后按回车键,您会得到-1073741824不正确的值,正确的值为3221225472。给出的答案是我输入的负十六进制数的值FFFFFFFFC0000000
我认为这可能是一个解释问题,所以我明确要求将值从十六进制转换为 Base10(十进制),我仍然得到相同的错误答案-1073741824:
[Convert]::ToString(0xc0000000,10)
Run Code Online (Sandbox Code Playgroud)
为什么 PowerShell 将0xc0000000十六进制数解释为负数c0000000?我在这里错过了什么吗?
Ans*_*ers 10
这是 PowerShell 的一个陷阱(也存在于早期版本中)。当您实际上希望它是无符号整数时,该值会被解释为有符号整数。您需要进行这样的转换才能解决该问题:
[uint32]"0xC0000000"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16235 次 |
| 最近记录: |