我想在C語言交換follwoing 2個headecimal號碼?例如:輸入:0xabcd輸出:0xcdab
Regrds venkat
我想在C語言交換follwoing 2個headecimal號碼?例如:輸入:0xabcd輸出:0xcdab
Regrds venkat
您可以使用的東西線沿線的:
#include <stdio.h>
int main (void) {
unsigned int from = 0xabcd;
unsigned int to = ((from & 0xff) << 8) | (from >> 8);
printf ("%04x\n", to);
return 0;
}
這個交換左右兩個字節,讓您的cdab
輸出。
謝謝................ – 2017-11-22 09:04:19
我的一個教授向我展示了用於交換,我總是發現優雅整數該位擺弄技術:
int x = 5;
int y = 7;
x = x^y;
y = x^y;
x = x^y; // x = 7, y = 5
我很低調,但我想知道爲什麼至少。 – FishBasketGordo 2011-06-09 13:54:24
我沒有downvote,但如果你看問題中的例子,它實際上是問如何交換字節順序,而不是如何交換兩個變量。另外,雖然異或技巧很聰明,但它通常比使用臨時變量更慢,更容易出錯。 – interjay 2011-06-09 15:02:28
我將這個問題歸咎於措辭不佳的問題。 :)感謝您的反饋@interjay – FishBasketGordo 2011-06-09 15:04:43
什麼平臺? Windows提供各種尺寸的_byte_swap
。否則你可以稍微改變它。
...這是從已經回答的問題中編輯出來的。 – geoffspear 2011-06-09 13:10:25
也:您的帖子中沒有必要的簽名。 – retrodrone 2011-06-09 13:10:25
我回復了另一個問題;如果OP不再需要它,它應該被刪除,因爲那裏有答案。不幸的是,在注意到這一點之前,我已經投票結束了。 – geoffspear 2011-06-09 13:12:28