请教两个16进制数求异或的问题

李小然 2013-03-17 02:22:53
问题:输入两个16进制数
输出两个数做异或的结果

疑惑:
1.求异或是否要先转换为二进制然后再求?
2.这个问题是否必须 先将16进制转换为2进制 然后求异或 最后再将二进制结果转换为16进制?
3.C++有没有直接将16进制转换为2进制的函数?如果没有,有什么简单的方法?2进制转换为16进制呢?

十分期望大家的帮助!
O(∩_∩)O谢谢
...全文
308 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
三思小新 2013-04-06
sorry,理解错了。
回复
三思小新 2013-04-06
楼上,用数组啊,

int x[100]; 
int y[100];
int z[100];
for(int i=0;i<100;++i)
    z[i]=x[i]^y[i];
回复
李小然 2013-03-17
引用 6 楼 HayYoung 的回复:
引用 3 楼 lixiaoran__ 的回复:引用 1 楼 HayYoung 的回复:C/C++ code?12345678910#include <iostream>#include <ios> int main(){ int x, y; std::cin >> std::hex >> x >> y; std::cout << std::hex << ……
谢谢~ 那如果需要好多数来做异或 是直接 x1 ^ x2 ^ x3 ^ x4 还是需要两个两个运算呢?
回复
HayYoung 2013-03-17
引用 3 楼 lixiaoran__ 的回复:
引用 1 楼 HayYoung 的回复:C/C++ code?12345678910#include <iostream>#include <ios> int main(){ int x, y; std::cin >> std::hex >> x >> y; std::cout << std::hex << (x ^ y) << std::endl; ……

结果不会有问题的。
回复
mujiok2003 2013-03-17
计算机只认识2进制,其他都是给人看的。
回复
lin5161678 2013-03-17
异或 有内置运算符 不用你操心吧 int i,j; scanf("%i%i", &i, &j); printf("%d", i^j);
回复
李小然 2013-03-17
引用 1 楼 HayYoung 的回复:
C/C++ code?12345678910#include <iostream>#include <ios> int main(){ int x, y; std::cin >> std::hex >> x >> y; std::cout << std::hex << (x ^ y) << std::endl; return 0;} 这样就行……
需要这个数存起来 int answer = x ^ y; 就行? 不用转换为二进制的然后再做异或吗? 为什么我这样做了 结果有问题....
回复
mujiok2003 2013-03-17
done
c = a ^ b; 
回复
HayYoung 2013-03-17
#include <iostream>
#include <ios>

int main()
{
	int x, y;
	std::cin >> std::hex >> x >> y;
	std::cout << std::hex << (x ^ y) << std::endl;
	return 0;
}
这样就行了。
回复
发帖
新手乐园
创建于2007-09-28

3.3w+

社区成员

C/C++ 新手乐园
申请成为版主
帖子事件
创建了帖子
2013-03-17 02:22
社区公告
暂无公告