【发布时间】:2013-12-01 06:08:13
【问题描述】:
有没有一种简单的方法可以将一个 64 位 (unsigned long long) 变量拆分为八个 int8_t 值?
例如:
//1001000100011001100100010001100110010001000110011001000110011111
unsigned long long bigNumber = 10455547548911899039;
int8_t parts[8] = splitULongLong(bigNumber);
parts 类似于:
[0] 10011111
[1] 10010001
[2] 00011001
...
[7] 10010001
【问题讨论】:
-
位移是你的朋友
-
您可以使用演员表:
(int8_t *)&_64bitVar。不过请注意大/小端。 -
是的,你关心字节序吗?这里的最终目标是什么?
-
@Potatoswatter 字节序是最重要的。目标是通过一维值验证二维板上的邻接性。
-
我不明白字节序对于检查邻接性有多么重要。
标签: c types bit-manipulation