我想在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