用c语言写出含有256位,64位,16位,42位随机数,他们进制都是16进制,不需要printf
时间: 2023-08-06 11:06:43 浏览: 142
以下是用C语言实现的生成256位、64位、16位、42位随机数的代码,这些随机数的进制都为16进制:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX_256_BITS 32
#define MAX_64_BITS 8
#define MAX_16_BITS 2
#define MAX_42_BITS 6
void gen_random_hex(unsigned char* hex, int len) {
for (int i = 0; i < len; i++) {
hex[i] = rand() % 256;
}
}
void print_hex(unsigned char* hex, int len) {
for (int i = 0; i < len; i++) {
printf("%02x", hex[i]);
}
}
int main() {
srand(time(NULL));
unsigned char hex256[MAX_256_BITS];
unsigned char hex64[MAX_64_BITS];
unsigned char hex16[MAX_16_BITS];
unsigned char hex42[MAX_42_BITS];
gen_random_hex(hex256, MAX_256_BITS);
gen_random_hex(hex64, MAX_64_BITS);
gen_random_hex(hex16, MAX_16_BITS);
gen_random_hex(hex42, MAX_42_BITS);
printf("256 bits: ");
print_hex(hex256, MAX_256_BITS);
printf("\n");
printf("64 bits: ");
print_hex(hex64, MAX_64_BITS);
printf("\n");
printf("16 bits: ");
print_hex(hex16, MAX_16_BITS);
printf("\n");
printf("42 bits: ");
print_hex(hex42, MAX_42_BITS);
printf("\n");
return 0;
}
```
这段代码使用了rand()函数生成随机数,并将其转换为16进制。注意,这里的随机数都是无符号数,因此最高位不会是1。
阅读全文