我检查了SWAR算法( S IMD W ithin A R egister)以反转位顺序unsigned int
的。{ signed int
是否有类似内容?
答案 0 :(得分:1)
该算法仅适用于无符号整数,因为不需要在位移期间进行符号扩展。
由于算法仅使用二进制表示而不是数值,因此您可以转换为相等大小的无符号整数(它将具有相同的表示形式),使用算法并转换为signed。这些转换不会变成任何汇编指令,它们只会导致编译器产生逻辑右移而不是算术右移。
答案 1 :(得分:0)
这取决于你反转有符号整数的位是什么意思。但是,通常,如果您计划将符号位置于LSB位置并将LSB置于符号位(这是交换任何内容的正常方式),则可以将相同的算法用于有符号和无符号整数。
如果不是这种情况,请通过反转有符号整数来解释你的意思。