C# 十六进制种子随机数发生器

C# 十六进制种子随机数发生器,c#,hex,C#,Hex,我想制作一个随机数生成器,允许用户以字符串的形式提供十六进制种子值。我在C#工作 我想要尽可能多的有效种子 Random类允许我们使用有符号整数对其进行种子设定。我可以轻松地将正值转换为十六进制,但是负值呢?有符号整数的最大大小为7fffff(十六进制)。我的理想解决方案是允许我对有符号整数取整个有效的数字范围,并为每个整数取一个对应的十六进制值 本质上,我需要两个函数将给定的带符号int转换为相应的十六进制值,反之亦然 我最初的想法是取任何小于0的整数,用有符号整数的最大值创建一个无符号整数,

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

我想要尽可能多的有效种子

Random类允许我们使用有符号整数对其进行种子设定。我可以轻松地将正值转换为十六进制,但是负值呢?有符号整数的最大大小为7fffff(十六进制)。我的理想解决方案是允许我对有符号整数取整个有效的数字范围,并为每个整数取一个对应的十六进制值

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


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

在负整数和十六进制之间转换真的没有什么用

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

我真的不明白这个问题-你是在问如何将基于负10的“常规”int值转换为十六进制值吗?
…允许用户提供十六进制种子
,这可能是个坏主意-用户倾向于输入相同的数字,因此结果不是那么随机。另外,
将有符号整数转换为十六进制值
值是相同的-十六进制只是一种表示法
本质上,我需要两个函数将给定的有符号整数转换为相应的十六进制值,反之亦然。
既然这个问题与生成随机数无关,为什么不把这个问题作为一个问题?