我如何赋值给uint32_t键[4]

How do I assign value to uint32_t key[4]

本文关键字:uint32 何赋值 赋值      更新时间:2023-10-16

如何为uint32_t key[4]赋值

一开始是uint32_t iv[2] = {0xFFFFFFDD};

然后在我的第二次运行…我需要赋一个新值…假设新值为

10273348653513887325 (decimal) but recorded as string for now.
string value = "10273348653513887325";

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

我该怎么做?

你没有。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所指出的那样,你对自己想要达到的目标缺乏明确的认识。