インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス

_rdseed16_step、_rdseed32_step、_rdseed64_step

16/32/64 ビットの乱数整数を生成します。対応する第 4 世代インテル® Core™ プロセッサー拡張命令は RDSEED です。

構文

extern int _rdseed16_step(unsigned short *random_val);

extern int _rdseed32_step(unsigned int *random_val);

extern int _rdseed64_step(unsigned __int64 *random_val);

パラメーター

*random_val

指定されたメモリーの場所に書き込まれる乱数

説明

これらの組込み関数は、16/32/64 ビットの乱数整数を生成します。これらの組込み関数は、RDSEED 命令に基づくコードシーケンスにマップされます。生成されるコードは、組込み関数が使用されているコンテキストとターゲット OS に依存します。

_rdrand64_step() 組込み関数は、64 ビット・レジスターをサポートしているシステムでのみ使用できます。

生成された乱数は指定されたメモリーの場所に書き込まれ、ステータス (ハードウェアによって有効な乱数が返された場合は '1'、そうでない場合は '0') が返されます。

RDSEED 組込み関数と RDRAND 組込み関数の違いは、RDSEED 組込み関数は NIST SP 800-90B および NIST SP 800-90C に準拠しており、RDRAND は NIST SP 800-90A に準拠しています。

戻り値

生成された乱数値は指定されたメモリー位置に書き込まれ、成功ステータスが返されます。ハードウェアによって 16/32/64 ビットの乱数値が返された場合は '1' (成功)。そうでない場合は '0' (失敗)。