【问题标题】:How to generate 8 byte hex value? [closed]如何生成 8 字节的十六进制值? [关闭]
【发布时间】:2011-04-02 14:44:04
【问题描述】:

我想在 C 中生成这个顺序数据:

data_packet[1] = 0706050403020100 (seed_value)

下一个

data_packet[2] = 0f0e0d0c0b0a0908

接下来将是接下来的 8 个十六进制字符,以此类推,例如 100 个字节。我该怎么做?我们可以使用字符数组吗?

【问题讨论】:

  • 加上未经编辑的Blockquote,没有人会邀请你参加他们的聚会。
  • char data[] = "0706050403020100"; ?解码您实际询问的内容有点困难。
  • 不,我想按该顺序生成顺序数据。
  • 你能用字符数组试试看会发生什么吗?
  • 我不明白你的问题。我查看了您的其他一些问题,这对您来说似乎是一个反复出现的问题。你需要设身处地为读者着想。你甚至可以自己打出答案。

标签: c seed packets


【解决方案1】:

您不想使用char 数组,因为char 可能已签名也可能未签名(已定义实现)。如果您正在使用从 0x00 到 0xFF 的十六进制数字,我强烈建议使用 unsigned char 数组。

看起来数组中的值是连续的,从 0 到 N。这表明使用了for 循环。

数组是固定大小的 8 个字节。嗯,for 循环的另一个不错的候选者。

任务的难点在于字节的方向。例如从位置 7 或位置 0 开始填充数组?

所以这里有一些伪代码可以帮助你:

For each value from 0 to N do:
begin
  for array position from 0 to 7 do: // or from 7 to 0
    put 'value' into the array at 'position';
  call function to process the array.
end

为了更有趣,将“put 'value'”的功能更改为“put random value”。

如果您希望我们实际编写您的程序,请告诉我们。我可以用多余的钱。 :-)

【讨论】:

    猜你喜欢
    • 2022-01-23
    • 1970-01-01
    • 2011-11-17
    • 2019-07-27
    • 2017-09-13
    • 1970-01-01
    • 2017-08-23
    • 2015-08-08
    • 1970-01-01
    相关资源
    最近更新 更多