Java xor xor(byte[] a, byte[] b)

Here you can find the source of xor(byte[] a, byte[] b)

Description

xor

License

Open Source License

Declaration

public static byte[] xor(byte[] a, byte[] b) 

Method Source Code

//package com.java2s;
/**//w  w  w  . j  a  va  2  s.  co  m
 * Copyright (c) 11/05/16, Jonas Waage
 * <p>
 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
 * documentation files (the "Software"), to deal in the Software without restriction, including without limitation
 * the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and
 * to permit persons to whom the Software is furnished to do so, subject to the following conditions:
 * <p>
 * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
 * <p>
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
 * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
 * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
 * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 */

public class Main {
    public static byte[] xor(byte[] a, byte[] b) {
        if (a.length != b.length) {
            throw new IllegalArgumentException(
                    "Byte arrays must have same size, was: " + a.length + " and " + b.length);
        }

        byte[] out = new byte[a.length];
        for (int i = 0; i < a.length; i++) {
            out[i] = sign(((int) a[i]) ^ ((int) b[i]));
        }
        return out;
    }

    /**
     *
     * @param by int to convert
     * @return java bytes are two's complement stuff
     */
    public static byte sign(int by) {
        return (byte) (0xff & by);
    }
}

Related

  1. xor(byte lhs[], byte rhs[])
  2. xor(byte[] a, byte[] b)
  3. xor(byte[] a, byte[] b)
  4. xor(byte[] a, byte[] b)
  5. xor(byte[] a, byte[] b)
  6. xor(byte[] a, byte[] b)
  7. xor(byte[] a, int offsetA, byte[] b, int offsetB, byte[] dst, int dstOffset, int length)
  8. xor(byte[] aBuffer, int aOffset, int aLength, byte[] aMask, int aMaskOffset)
  9. xor(byte[] array1, byte[] array2)