int main(){
uint8_t *wdata = NULL;
wdata = calloc(5, sizeof(uint8_t));
for (int j =0;j<5;j++){
wdata[j] = rand();
}
}
rand()
函数生成16位数据。如何生成8位随机值?是否需要使用自定义功能? 最佳答案
如何在C中生成8位随机数
给定的代码如
uint8_t *wdata = calloc( 5, sizeof( uint8_t ) );
就像是
for ( int j = 0;j < 5; j++ )
{
wdata[ j ] = rand();
}
会很好的工作。
整数分配给无符号值将被截断,这正是您想要的。请参见6.5.16.1 Simple assignment of the C Standard。
请注意,7.22.2 Pseudo-random sequence generation functions, paragraph 5保证
RAND_MAX
至少为32767,比8位“宽”,因此保证结果可以“填满” 8位变量。关于c - 如何在C>中生成8位随机数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53378519/