问题描述
- 两个很长的16进制字符串怎么进行异或运算?
- str1=""0d1fe39e573488cf""
str2=""0d1fe39e573488ee595acd5c6d4ce0f445476794""
怎不进行异或运算?
由于太长不能转化成long
解决方案
每2个一组,存入数组,然后循环异或。
解决方案二:
byte[] array1 = str1.getBte();
byte[] array2 = str2.getByte();
byte[] array3 - new byte[Math.mzx(array1.length array2.length)];
根据你的需求应该是array1的长度短于array2的长度
一般字符串是从左到右顺序解析,不过array1后面可以补0或1变成和array2一样的长度,
再按位进行异或操作,将结果放入 array3对应的节点中,再str3 = new Sting(array3)看看是不是你想要的结果。
解决方案三:
转换成字节,字节转成int,执行异或操作,试试?
时间: 2025-01-27 14:58:37