2011-04-10 123 views
0

我用於反轉的unsigned int s的比特順序檢出的SWAR算法(小號 IMD W¯¯ ithin ř egister)。 signed int有類似的東西嗎?簽名INT轉換 - > LSB和++ LSB-> MSB用C

+0

我真誠地希望這不意味着拼寫SWAP。標誌並不重要。 – 2011-04-10 20:03:18

+0

非常感謝。是的,我不是故意拼寫SWAP :) – Doug 2011-04-10 20:08:50

+0

是'SWAR'就像'寄存器內的SIMD'一樣嗎? – 2011-04-10 20:31:33

回答

0

這取決於你的意思是顛倒有符號整數的位。但是,一般來說,如果您計劃將符號位置於LSB位置,並將符號位置於符號位(這是交換任何東西的正常方式),那麼對於有符號整數和無符號整數都可以使用相同的算法。

如果不是這種情況,請通過反轉有符號整數來解釋您的意思。

1

該算法僅適用於無符號整數,因爲在位移時不需要符號擴展。由於該算法只使用二進制表示,而不是數值,因此您可以將其轉換爲大小相等的無符號整數(它將具有相同的表示形式),使用該算法並將其轉換回有符號。這些轉換不會變成任何彙編指令,它們只是使編譯器產生邏輯右移而不是算術右移。