mirror of
https://github.com/Xahau/xahaud.git
synced 2025-12-06 17:27:52 +00:00
Add Random::nextBlob
This commit is contained in:
@@ -98,6 +98,23 @@ double Random::nextDouble() noexcept
|
|||||||
return static_cast <uint32> (nextInt()) / (double) 0xffffffff;
|
return static_cast <uint32> (nextInt()) / (double) 0xffffffff;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Random::nextBlob (void* buffer, size_t bytes)
|
||||||
|
{
|
||||||
|
int const remainder = bytes % sizeof (int64);
|
||||||
|
|
||||||
|
{
|
||||||
|
int64* dest = static_cast <int64*> (buffer);
|
||||||
|
for (int i = bytes / sizeof (int64); i > 0; --i)
|
||||||
|
*dest++ = nextInt64 ();
|
||||||
|
buffer = dest;
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
int64 const val = nextInt64 ();
|
||||||
|
memcpy (buffer, &val, remainder);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
BigInteger Random::nextLargeNumber (const BigInteger& maximumValue)
|
BigInteger Random::nextLargeNumber (const BigInteger& maximumValue)
|
||||||
{
|
{
|
||||||
BigInteger n;
|
BigInteger n;
|
||||||
|
|||||||
@@ -89,6 +89,10 @@ public:
|
|||||||
*/
|
*/
|
||||||
bool nextBool() noexcept;
|
bool nextBool() noexcept;
|
||||||
|
|
||||||
|
/** Fills a piece of memory with random data.
|
||||||
|
*/
|
||||||
|
void nextBlob (void* buffer, size_t bytes);
|
||||||
|
|
||||||
/** Returns a BigInteger containing a random number.
|
/** Returns a BigInteger containing a random number.
|
||||||
|
|
||||||
@returns a random value in the range 0 to (maximumValue - 1).
|
@returns a random value in the range 0 to (maximumValue - 1).
|
||||||
|
|||||||
Reference in New Issue
Block a user