gpt4 book ai didi

powershell - 快速将十进制转换为二进制数-Powershell

转载 作者:行者123 更新时间:2023-12-03 00:49:04 25 4
gpt4 key购买 nike

我正在尝试将大约33'000'000十进制数字转换为二进制。
目前,我正在使用此脚本:

$top = 33000000000
$binary
$out
$cache
for($i = 0; $i -lt $top; $i++){
$binary = [Convert]::ToString($i, 2)
$cache = $binary
$out = 10000000000000000000000000 + $cache
Write-Host $out
$out | Out-File -FilePath C:\Users\inffhe\Desktop\binary\binary.txt -Append
}
Read-Host

很好,但是很慢...
以这种速度,它将连续运行约5天。
你有什么想法可以使速度更快吗?
我要在数字上加上“10000000000000000000000000”,因为它需要有25位数字。
谢谢你的努力。

最佳答案

  • 删除任何控制台输出,例如Write-Host
  • $out = 10000000000000000000000000 + $cache将您的二进制字符串隐式转换回整数(甚至是double)以执行加法。确保您的号码最初设置了第25位,例如与$i -bor 0x100000
  • 使用其他语言。 C#的可读性和方式都可能比PowerShell快。

  • 在我的机器上,以下代码段在不到7秒的时间内执行完毕:
    0..100000|%{[Convert]::ToString(($_-bor0x1000000), 2)}|out-file x.txt

    这意味着完整的3千3百万个数字大约需要40分钟。

    另一方面,以下C#
    using System;
    using System.IO;

    class X{
    static void Main() {
    using (var f = new StreamWriter(File.OpenWrite("x.txt"))) {
    for (int i=0;i<33000000;i++) {
    f.WriteLine(Convert.ToString(i | 0x100000, 2));
    }
    }
    }
    }

    只需几秒钟即可执行。对于所有33000000个数字。生成一个820 MiB文件。

    关于powershell - 快速将十进制转换为二进制数-Powershell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34339258/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com