用c写一个函数,生成256位、64位、42位、16位四个16进制随机数的函数并且不使用printf,并且分别调用他们
时间: 2023-11-28 18:48:19 浏览: 128
c/c++函数库
以下是一个生成指定位数的16进制随机数的函数,使用了C标准库中的rand()函数和srand()函数:
```c
#include <stdlib.h>
// 生成 num 位的 16 进制随机数
char* generate_hex_random(int num) {
char* hex = (char*)malloc(sizeof(char) * (num + 1));
for (int i = 0; i < num; i++) {
int r = rand() % 16;
if (r < 10) {
hex[i] = r + '0';
} else {
hex[i] = r - 10 + 'a';
}
}
hex[num] = '\0';
return hex;
}
```
接下来你可以分别调用这个函数生成指定位数的16进制随机数:
```c
int main() {
srand(time(NULL)); // 使用当前时间作为随机数种子
char* hex_256 = generate_hex_random(64);
char* hex_64 = generate_hex_random(16);
char* hex_42 = generate_hex_random(10);
char* hex_16 = generate_hex_random(4);
// 使用生成的随机数做任何你想做的事情
free(hex_256);
free(hex_64);
free(hex_42);
free(hex_16);
return 0;
}
```
阅读全文