如何为uint32_t键赋值[4]

时间:2013-05-11 16:14:50

标签: c++

如何为uint32_t key[4]

指定值

我最初有uint32_t iv[2] = {0xFFFFFFDD};

然后在我的第二次运行..我需要分配一个新值..让我们假设新值是

10273348653513887325 (decimal) but recorded as string for now.

string value = "10273348653513887325";

但我希望将iv的值从0xFFFFFFDD(十六进制)更改为10273348653513887325(十进制)

我该怎么做?

1 个答案:

答案 0 :(得分:0)

你没有。 10273348653513887325作为小数将不适合uint32_t。您可以假装iv是64位值:

uint64_t* piv = (uint64_t*)&iv[0];
*piv = decValue; // where dec value is the decimal conversion of the string

但是在你完成之后,你真正拥有的是两个32位值,每个值都有你想要存储的值的一部分。仅仅因为那不够尴尬,你正在使用的架构的结尾就会发挥作用。所以不要这样做。

另一种方法是使用2个32位值和一个64位值的匿名联合。

指出分配

可能是值得的
uint32_t iv[2] = {0xFFFFFFDD };

导致iv中的第一个元素具有该值,而第二个元素包含0.这是你的意思吗?

正如@hvd所指出的,对于你想要实现的目标缺乏明确性。