代码之家  ›  专栏  ›  技术社区  ›  Kumar Roshan Mehta

生成十六进制随机16字节数组

c++
  •  0
  • Kumar Roshan Mehta  · 技术社区  · 7 年前

    我想在C或C++ 11中用十六进制生成16字节的数组:

    const uint8_t alice[16] = { 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf };
    

    我该怎么做?最好提供一个示例代码。

    1 回复  |  直到 7 年前
        1
  •  1
  •   jspcal    7 年前

    尝试使用 std::independent_bits_engine 要执行提取,请执行以下操作:

    // Array of random chars
    std::vector<unsigned char> chars(16);
    
    // Random bits generator
    std::independent_bits_engine<std::default_random_engine, CHAR_BIT, unsigned char> engine;
    
    // Generate the array
    std::generate(begin(chars), end(chars), std::ref(engine));