Me *_*elf 2 powershell hex largenumber large-data
我正在尝试从 a000000000-affffffffff 生成一系列十六进制,但这些值对于 Int32 来说太大了。出现错误Cannot convert value "687194767360" to type "System.Int32". Error: "Value was either too large or too small for an Int32."
这是代码
(0xa000000000..0xafffffffff|% ToString X10).ToLower()
..范围运算符的端点必须适合[int]您的数字超出的值。
0xa000000000..0xafffffffff| % ToString X10管道命令的输出完整地收集在内存中,因此通过将其包含在其中(...)并调用其方法.ToString(),收集的输出必须适合一个数组,以及范围内的元素计数超过最大值 .NET 数组的容量也是如此。同样,[Linq.Enumerable]::Range()不幸的是该方法也只接受[int]端点。
但是,您可以实现一个(自定义)流解决方案,其中 PowerShell 创建每个格式化数字(字符串)并将其一一发送到管道:
$num = 0xa000000000
while ($num -le 0xafffffffff) { ($num++).ToString('x10') }
Run Code Online (Sandbox Code Playgroud)
笔记:
虽然这有效,但速度会很慢。
您将无法将结果作为一个整体捕获到内存中的集合中。
| 归档时间: |
|
| 查看次数: |
323 次 |
| 最近记录: |