观察: Java有一个逻辑AND运算符。 Java有一个逻辑OR运算符。 Java有一个逻辑NOT运算符。 问题: 根据sun的说法, Java没有逻辑异或运算符。 我想定义一个。 方法定义: 作为一种方法,它被简单地定义如下: public static boolean logicalXOR(boolean x, boolean y) { return ( ( x || y ) && ! ( x && y ) ); } 方法调用: 以下面的方法调用这个方法: boolean myVal = logicalXOR(x, y); 运算符用法: 我宁愿有一个运营商,使用如下: boolean myVal = x ^^ y; 题: 我无法find关于如何在Java中定义一个新的操作符的任何事情。 我应该从哪里开始?
挑战: 在两个相同大小的缓冲区上执行按位XOR。 缓冲区将被要求是python strtypes,因为这是传统的python中的数据缓冲区的types。 返回结果值作为一个str 。 尽可能快地做到这一点。 input是两个1兆字节(2 ** 20字节)string。 我们面临的挑战是使用python或现有的第三方python模块(宽松的规则:或者创build自己的模块) 大幅度地打败我低效的algorithm。边际增长是无用的。 from os import urandom from numpy import frombuffer,bitwise_xor,byte def slow_xor(aa,bb): a=frombuffer(aa,dtype=byte) b=frombuffer(bb,dtype=byte) c=bitwise_xor(a,b) r=c.tostring() return r aa=urandom(2**20) bb=urandom(2**20) def test_it(): for x in xrange(1000): slow_xor(aa,bb)