带有十六进制种子的随机数生成器



我想制作一个随机数生成器,允许用户以字符串的形式提供十六进制种子值。我正在使用 C#。

我想拥有尽可能多的有效种子。

Random 类允许我们用有符号整数为它播种。我可以轻松地将正值转换为十六进制,但是负值呢?有符号整数的最大大小为 7FFFFFFFFFF,十六进制。我理想的解决方案是允许我为有符号的 int 获取整个有效数字范围,并为每个数字设置相应的十六进制值。

本质上,我需要 2 个函数将给定的有符号 int 转换为相应的十六进制值,反之亦然。

我最初的想法是取任何小于 0 的 int,创建一个无符号 int,其值为有符号 int 的最大值,然后添加小于 0 的 int 的绝对值。现在,整数值有一个连续的范围。将其转换为十六进制,您就有了十六进制值。谁能在我的逻辑上戳洞?

在负整数和十六进制之间转换实际上没有什么可

取的。
class Program
{
static void Main(string[] args)
{
int value = -73651221;
Console.WriteLine($"Int: {value}");
var hex = value.ToString("X");
Console.WriteLine($"Hex: {hex}");
Console.WriteLine($"Int again: {int.Parse(hex, System.Globalization.NumberStyles.HexNumber)}");
Console.Read();
}
}

提供输出:

Int: -73651221
Hex: FB9C2BEB
Int again: -73651221

最新更新