用c写一个函数,生成256位、64位、42位、16位四个16进制随机数的函数并且不使用printf,别的函数会调用他们的值
时间: 2023-11-28 10:48:57 浏览: 8
以下是用c语言编写生成256位、64位、42位、16位四个16进制随机数的函数:
```c
#include <time.h>
#include <stdlib.h>
// 生成256位随机数
void gen256Hex(char* hex)
{
srand(time(NULL));
for(int i=0; i<64; i++)
{
int r = rand() % 16;
char c = r < 10 ? r + '0' : r - 10 + 'a';
hex[i] = c;
}
}
// 生成64位随机数
void gen64Hex(char* hex)
{
srand(time(NULL));
for(int i=0; i<16; i++)
{
int r = rand() % 16;
char c = r < 10 ? r + '0' : r - 10 + 'a';
hex[i] = c;
}
}
// 生成42位随机数
void gen42Hex(char* hex)
{
srand(time(NULL));
for(int i=0; i<11; i++)
{
int r = rand() % 16;
char c = r < 10 ? r + '0' : r - 10 + 'a';
hex[i] = c;
}
}
// 生成16位随机数
void gen16Hex(char* hex)
{
srand(time(NULL));
for(int i=0; i<4; i++)
{
int r = rand() % 16;
char c = r < 10 ? r + '0' : r - 10 + 'a';
hex[i] = c;
}
}
```
这里使用了srand和rand函数生成随机数,并且将随机数转换为16进制字符。调用这些函数可以得到对应位数的16进制随机数,例如:
```c
char hex256[65];
gen256Hex(hex256);
char hex64[17];
gen64Hex(hex64);
char hex42[12];
gen42Hex(hex42);
char hex16[5];
gen16Hex(hex16);
```