如何在C中生成由4个十六进制数字组成的代码?

时间:2012-10-20 09:51:18

标签: c

如何生成由4个十六进制数字组成的代码?  代码符合以下条件: - 第一个和第三个数字是相同的 - 第二位是偶数 - 第三位数大于9 - 第四位是随机的(没有条件)

1 个答案:

答案 0 :(得分:1)

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
  int code1, code2, code4;
  srand(time(NULL)); // set random seed
  code1 = random()%6+10;   // random between 10 and 15
  code2 = random()%8*2;    // even
  code4 = random()%16;     // random between 0-15
  printf("%X%X%X%X\n",code1, code2, code1, code4);
}

这里有几点需要注意。第一个是我生成3&#39;代码&#39;,因为第三个代码始终与第一个相同。

要生成0-15之间的随机数,请使用random()%16我使用类型int来存储这些,这可能无关紧要。打印时,我使用%X而不是更常见的%d,因为%X会以十六进制打印。我打印四个十六进制数字(当然重用code1)。 最后一部分是满足您的条件。 code1是一个0-5范围内的随机数,并加10(使其大于9)
code2是random()%8*2,它生成0-7范围内的随机数,然后将其加倍(使其均匀) code4只是0-15的随机数

您没有解释如何处理生成的代码,所以我只是打印它。如果需要将其打印成字符串以便进一步工作,可以使用sprintf函数。