1

我需要在 C# 或 Delphi 中将非常大的数字从 Base 256(字节)转换为 Base 10(十进制)。例如,实际目标是将任何给定文件的内容表示为一个非常大的十进制数并将其保存在 txt 文件中。我们都知道如何从一个基数转换为另一个基数,但这里真正的挑战是数字的大小。任何帮助,将不胜感激。

4

2 回答 2

12

我强烈怀疑,如果您使用的是 .NET 4 或更高版本,您将能够使用BigInteger(byte[])构造函数 - 然后如果您愿意(或仅将其用作数字)将结果转换为十进制字符串。您可能需要根据输入的字节顺序反转输入数组中的字节。

于 2013-09-06T12:56:10.233 回答
1

在您的更新中,这非常简单。

听起来您正在尝试使用一些 getc() 函数(确切的名称使我无法理解)以字符形式读取二进制文件。每个字符由一个字节表示,因此有 256 个选项。这使 chars 具有 8 位整数的一定程度的渗透性。您应该能够读取一个字符并将其转换为一个整数,这将为您提供该字符的 8 位的十进制表示。

字符也不是基数 256,它们只是 8 位二进制数。

于 2013-09-06T13:20:20.297 回答