2

例如,如果我有一个 64 位变量并在其中存储两个 32 位数据项,也许是出于 SIMD 处理的目的,是否有一个名称来描述这两项数据的逻辑耦合?

我的一位同事建议“混合耦合”,这是一个广泛使用的术语吗?

澄清一下:我们追求的是比具体实现更高层次的概念。例如,在类 C 语言中,我们有以下两个结构:

struct CoupledData
{
    uint64 x_and_y; // x is stored in the top 4 bytes, y in the bottom 4
}

struct UncoupledData
{
    uint32 x;
    uint32 y;
}

不管这样做的原因是什么,CoupledData 中的 x 和 y 数据成员之间存在隐式耦合,而 UncoupledData 中不存在这种耦合。是否有一个术语可以描述 x 和 y 之间的这种耦合?

4

2 回答 2

5

我一直称它为“包装”。您将 R、G、B 和 alpha 字节打包成一个 long。

pixel=(a<<24)+(r<<16)+(g<<8)+b;

以下是 SIMD 指令的参考(来自 MMX/SSE):

ADDPS:添加压缩单精度 FP 值

CMPccPS:打包单精度 FP 比较

于 2009-07-29T14:38:24.627 回答
0

在c世界中它被称为联合

“联合声明”指定一组变量值,以及一个可选的命名联合的标记。变量值被称为联合的“成员”,可以有不同的类型。联合类似于其他语言中的“变体记录”

具有联合类型的变量存储该类型定义的值之一。相同的规则管理结构和联合声明。联合也可以有位域。

在他的示例中,您将拥有以下伪代码:

工会 32_64 {

64_bit_specifier sixty_four;
32_bit_specifier thirty_two;

}

于 2009-07-29T14:40:21.350 回答