0

我检查了 SWAR 算法(S IMD W ithin A Register )以反转 s 的位顺序。有类似的东西吗?unsigned intsigned int

4

2 回答 2

1

该算法仅适用于无符号整数,因为不需要在位移期间进行符号扩展。

由于该算法仅使用二进制表示,而不是数值,因此您可以转换为大小相等的无符号整数(它将具有相同的表示),使用该算法,然后转换回有符号。这些转换不会变成任何汇编指令,它们只会导致编译器产生逻辑右移而不是算术右移。

于 2011-04-10T21:38:47.240 回答
0

这取决于反转有符号整数的位的含义。但是,一般来说,如果您打算将符号位放在 LSB 位置,将 LSB 放在符号位中(这是交换任何内容的正常方法),那么相同的算法可以用于有符号和无符号整数。

如果不是这种情况,请通过反转有符号整数来解释您的意思。

于 2011-04-10T21:20:43.783 回答