如何设置int64的较低或较高值

How to set the lower or higher Value of a int64?

本文关键字:高值 int64 何设置 设置      更新时间:2023-10-16

我知道我可以用获得int 64的更高值

int32 higher = (int32)(iGUID >> 32);

但是我该怎么设置呢?

我试过这个,但它说"表达式必须是一个可修改的值":

iGUID << 32 = inewlGUID;

我需要保留另一个值(如果我设置的值越高,则应保留的值越低(。

更改高32位,同时保持低32位不变:

iGUID = (iGUID & 0xFFFFFFFF) | (inewlGUID << 32);
iGUID = (static_cast<int64>(inewlGUID) << 32) | (iGUID & 0xffffffff);

这将保留任何现有内容。

您也可以获取64位值的地址,并将其强制转换为指向int32的指针,然后对其进行下标和赋值。不过,通常不建议使用,因为这会使代码取决于平台的字节顺序。