将随机整数拆分为4个随机字节
本文关键字:随机 4个 字节 拆分 整数 | 更新日期: 2023-09-27 18:06:39
你能把一个随机的无符号整数分成4个随机的无符号字节,使它们的值(0-255)均匀分布吗?如果有,怎么做?
我在c#中尝试过,但似乎0比其他数字更常用。
byte[] bytes = BitConverter.GetBytes(u);
似乎是这样做的:
byte[] array = new byte[4];
fixed (byte* ptr = array)
{
*(int*)ptr = value;
}
return array;
是一些随机整数:http://pastebin.com/sDWBqKJK
如果u
仅由随机位组成,包括最高有效位或字节,那么您的代码将按原样工作。在CLR上,uint
正好有4个字节,每个字节长8位。
它不起作用,所以你的随机数来源是错误的。以十六进制格式(ToString("X8")
)打印100个到控制台。你可能会发现这里的0比应该的多很多。
修复随机数的来源