求高手,两个16进制数异或运算C++代码

两个十六进制的数,很长,基本相同,比如说 0000 af80 4886 0600 2000 0408 0000和0010 af80 4886 0600 2040 0408 0020 我想把这两个数,在哪一位不同,数据是什么,打印出来,我的想法是用这两个数进行异或运算,然后再移位,得出不同的位的偏移量,请高人帮我写个代码
C语言的也行,急用,最好有注释!运用到fscanf函数,目的是在一个文件中读取第一行数据,放到缓存区中,然后继续读取第二行数据,放到2个缓存区中,缓存区足够大,再读取第三行···最后分别比较第2缓存区,第三缓存区·····和第一缓存区中数据的差别;把结果放到另一个文件中。
补充,实际是数据包的处理,会发很多次包,一次的数据放在文件的一行,我想到的是,怎么能一次读取文件的一行,然后放到不同的缓存区。数据不只是2个,最好有人帮我写下代码,文件流这里不太会啊!

如果想比较位,那就要转换成2进制。
然后将二进制数放到数组中,从后往前依次比较就可以了

你说有3个缓冲区,为什么,不是两个数字么?
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-12-24
如果长度固定可以定义个结构体,用多个整形存储下来,对应异或就可以了
如果长度不固定,动态分配内存存下来再处理
第2个回答  2013-03-18
不好意思啊,我想问一下,你的意思是直接就可以进行十六进制的异或运算吗?

求高手,两个16进制数异或运算C++代码
如果想比较位,那就要转换成2进制。然后将二进制数放到数组中,从后往前依次比较就可以了 你说有3个缓冲区,为什么,不是两个数字么?

c++异或运算代码
异或运算符^属于C++内置运算符,可以直接使用。例如,int a=2, b=1, c=0;c=a^b; \/\/c就等于3

异或的运算符是什么?
异或的运算符c++可以直接使用^表示按位异或 其他语言可以用xor表示异或(一部分)异或的定义当两个数的二进制有一位相同时,这一位异或的结果就是0,否则为1。如:6和4异或 6的二进制是110,4的二进制是100,不够的位补0(和10进制一样)1 1 0 1 0 0 --- 0 1 0 10(2)的10进制为2...

在c++中怎么用异或把两个字符互换?
使用位运算交换两个数,是利用了异或的自反性: a^b^b=a^0=a;

c++中的异或是什么?
C++中的异或是按位异或运算符,表示为`^`。异或运算符`^`是一种二进制运算符,它对两个数的二进制表示进行操作。具体来说,对于每一位,如果两个相应的二进制位相同,则结果为0;如果不同,则结果为1。例如,对于二进制数`1010`和`0011`,应用异或运算后的结果是`1001`。在C++中,异或运算符...

异或运算结果是多少?
值为4.换算为二进制再进行异或运算,过程如下:0x13 00010011 0x17 00010111 ---异或运算,相同的结果为0 0x04 00000100 所以结果是4 补充:0x是16进制数表示的前缀,在C、C++等语言里面,34这样的数字是表示10进制数字,0x34就是表示16进制数的34,这是个规则而已。

C++中异或的使用例题?
include<stdio.h> void main() { unsigned int a; scanf("%u",&a); a^=0x0ff; printf("%x\\n",a); } 与0异或得到的值不变,与1异或取反,因此变量中的数与低8位均为1的数异或可以满足题目要求。

c++中的异或是什么?
C++中的异或是一种位运算操作符,用符号"^"表示。异或运算是一种二进制运算,它对每一位执行“异”则“或”的操作。具体来说,如果两个相应的二进制位相同,则结果为0,否则为1。这种运算在C++中常被用于一些低级的位操作,如加密、数据校验或者某些特定的算法中。举个例子,...

详解C++按位与、或、异或运算
C++的位运算符按位与(&), 按位或(|), 和异或(^)在编程中有着重要的应用。它们都是针对二进制位进行操作,对于负数,需使用补码形式参与运算。首先,按位与(&)的规则是:0与0结果为0,0与1结果为0,1与0结果为0,1与1结果为1。它可以用来清零、取特定位或判断奇偶性。例如,通过与一个全...

c++异或运算
按位异或运算符(^)按位异或运算将两个运算分量的对应位按位遵照以下规则进行计算:0 ^ 0 = 0, 0 ^ 1 = 1, 1 ^ 0 = 1, 1 ^ 1 = 0 即相应位的值相同的,结果为 0,不相同的结果为 1。例如,013^035结果为026。异或运算的意思是求两个运算分量相应位值是否相异,相异的为1,相同...

相似回答