如何为uint32_t key[4]
我最初有uint32_t iv[2] = {0xFFFFFFDD};
然后在我的第二次运行..我需要分配一个新值..让我们假设新值是
10273348653513887325 (decimal) but recorded as string for now.
string value = "10273348653513887325";
但我希望将iv
的值从0xFFFFFFDD
(十六进制)更改为10273348653513887325
(十进制)
我该怎么做?
答案 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所指出的,对于你想要实现的目标缺乏明确性。