【发布时间】:2016-08-06 11:14:19
【问题描述】:
我有一个 64 位长整数,其中包含一些位域。我需要一个存储在第二个和第三个字节中的 16 位有符号整数,并将其添加到 32 位值。我正在使用这样的东西:
u32 Function( s32 value , u64 bitfield )
{
return value + (s16) (bitfield >> 8)
}
我可以依靠编译器将位域转换为 16 位有符号整数,然后再将其扩展为 32 位有符号整数并执行加法吗?如果没有,我还应该如何截断剩余的字节并执行我需要的类型转换?
【问题讨论】:
标签: c++ casting type-conversion bit-fields