开发者社区 问答 正文

两个很长的16进制字符串怎么进行异或运算?

str1="0d1fe39e573488cf"
str2="0d1fe39e573488ee595acd5c6d4ce0f445476794"
怎不进行异或运算? 由于太长不能转化成long

展开
收起
蛮大人123 2016-02-26 11:51:54 2636 分享 版权
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    byte[] array1 = str1.getBte();
    byte[] array2 = str2.getByte();
    byte[] array3 - new byte[Math.max(array1.length, array2.length)];
    根据你的需求应该是array1的长度短于array2的长度
    一般字符串是从左到右顺序解析,不过array1后面可以补0或1变成和array2一样的长度,
    再按位进行异或操作,将结果放入 array3对应的节点中,再str3 = new Sting(array3)看看是不是你想要的结果。

    2019-07-17 18:48:06
    赞同 展开评论
问答地址: