Страницы

Поиск по вопросам

суббота, 27 апреля 2019 г.

Как сгенерировать случайное 64-разрядное целое число

Как сгенерировать случайное 64-разрядное число (типа long, он же Int64) на C#?


Ответ

из social.msdn.microsoft.com
Можно так:
private readonly Random rnd = new Random(); // create it just once and reuse private ulong Get64BitRandom(ulong minValue, ulong maxValue) { // Get a random array of 8 bytes. // As an option, you could also use the cryptography namespace stuff to generate a random byte[8] byte[] buffer = new byte[sizeof(ulong)]; rnd.NextBytes(buffer); return BitConverter.ToUInt64(buffer, 0) % (maxValue - minValue + 1) + minValue; }
или так:
public static ulong Get64BitRandom(ulong minValue, ulong maxValue) { // Get a random array of 8 bytes byte[] buffer = new byte[sizeof(ulong)]; rnd.NextBytes(buffer);
if (minValue == ulong.MinValue && maxValue == ulong.MaxValue) return BitConverter.ToUInt64(buffer, 0);
ulong modValue = maxValue - minValue + 1; return (BitConverter.ToUInt64(buffer, 0) % modValue) + minValue; }

Комментариев нет:

Отправить комментарий