按位异或(xor)运算可以应用于两个相应位之间的两个二进制数:
例如,1101011 xor 1010101 = 0111110
。
定义一个递归函数,该函数接受两个整数参数模拟两个输入二进制数,并将xor操作的结果作为整数返回。在主程序中调用并测试该功能。 (注意:结果的前面的零可能不会出现在显示屏上,这没关系)。
我该怎么做?
答案 0 :(得分:1)
如果您应该以十进制形式发送参数,那么这样的事情可能会起作用:
void recursiveXor( int a, int b ){
if( 0 == a && 0 == b )
return;
int old = ( a % 2 ) ^ ( b % 2 );
recursiveXor( a/2, b/2 );
printf("%d", old ); //System.out.println( old ); if it is Java
}
如果参数以二进制表示(例如:recursiveXor(111, 1101)
),则:
void recursiveXor( int a, int b ){
if( 0 == a && 0 == b )
return;
int old = ( ( a%10 ) + ( b%10 ) ) % 2;
recursiveXor( a/10, b/10 );
printf("%d", old); //System.out.println( old ); if it is Java
}