Java Array Shift shiftRight(byte[] x)

Here you can find the source of shiftRight(byte[] x)

Description

shift Right

License

Open Source License

Declaration

static byte shiftRight(byte[] x) 

Method Source Code

//package com.java2s;
//License from project: Open Source License 

public class Main {
    static byte shiftRight(byte[] x) {
        //        int c = 0;
        //        for (int i = 0; i < 16; ++i)
        //        {
        //            int b = x[i] & 0xff;
        //            x[i] = (byte)((b >>> 1) | c);
        //            c = (b & 1) << 7;
        //        }
        //        return (byte)c;

        int i = 0, c = 0;
        do {/*from w  w  w  . ja v a2  s .  c  o m*/
            int b = x[i] & 0xff;
            x[i++] = (byte) ((b >>> 1) | c);
            c = (b & 1) << 7;
            b = x[i] & 0xff;
            x[i++] = (byte) ((b >>> 1) | c);
            c = (b & 1) << 7;
            b = x[i] & 0xff;
            x[i++] = (byte) ((b >>> 1) | c);
            c = (b & 1) << 7;
            b = x[i] & 0xff;
            x[i++] = (byte) ((b >>> 1) | c);
            c = (b & 1) << 7;
        } while (i < 16);
        return (byte) c;
    }

    static byte shiftRight(byte[] x, byte[] z) {
        //        int c = 0;
        //        for (int i = 0; i < 16; ++i)
        //        {
        //            int b = x[i] & 0xff;
        //            z[i] = (byte) ((b >>> 1) | c);
        //            c = (b & 1) << 7;
        //        }
        //        return (byte) c;

        int i = 0, c = 0;
        do {
            int b = x[i] & 0xff;
            z[i++] = (byte) ((b >>> 1) | c);
            c = (b & 1) << 7;
            b = x[i] & 0xff;
            z[i++] = (byte) ((b >>> 1) | c);
            c = (b & 1) << 7;
            b = x[i] & 0xff;
            z[i++] = (byte) ((b >>> 1) | c);
            c = (b & 1) << 7;
            b = x[i] & 0xff;
            z[i++] = (byte) ((b >>> 1) | c);
            c = (b & 1) << 7;
        } while (i < 16);
        return (byte) c;
    }

    static int shiftRight(int[] x) {
        //        int c = 0;
        //        for (int i = 0; i < 4; ++i)
        //        {
        //            int b = x[i];
        //            x[i] = (b >>> 1) | c;
        //            c = b << 31;
        //        }
        //        return c;

        int b = x[0];
        x[0] = b >>> 1;
        int c = b << 31;
        b = x[1];
        x[1] = (b >>> 1) | c;
        c = b << 31;
        b = x[2];
        x[2] = (b >>> 1) | c;
        c = b << 31;
        b = x[3];
        x[3] = (b >>> 1) | c;
        return b << 31;
    }

    static int shiftRight(int[] x, int[] z) {
        //      int c = 0;
        //      for (int i = 0; i < 4; ++i)
        //      {
        //          int b = x[i];
        //          z[i] = (b >>> 1) | c;
        //          c = b << 31;
        //      }
        //      return c;

        int b = x[0];
        z[0] = b >>> 1;
        int c = b << 31;
        b = x[1];
        z[1] = (b >>> 1) | c;
        c = b << 31;
        b = x[2];
        z[2] = (b >>> 1) | c;
        c = b << 31;
        b = x[3];
        z[3] = (b >>> 1) | c;
        return b << 31;
    }

    static long shiftRight(long[] x) {
        long b = x[0];
        x[0] = b >>> 1;
        long c = b << 63;
        b = x[1];
        x[1] = (b >>> 1) | c;
        return b << 63;
    }

    static long shiftRight(long[] x, long[] z) {
        long b = x[0];
        z[0] = b >>> 1;
        long c = b << 63;
        b = x[1];
        z[1] = (b >>> 1) | c;
        return b << 63;
    }
}

Related

  1. shiftNibbles(byte[] bytes)
  2. shiftOff(T[] a)
  3. shiftOffsets(int[] offsets, int changeOffset, int oldLength, int newLength)
  4. shiftOnRow(double[][] d, int q)
  5. shiftRight(byte[] block)
  6. shiftRight(int[] result, int[] vec, int shift)
  7. shiftRight(int[] x)
  8. shiftRight(Object[] array, final int amount)
  9. shiftRight(T[] array)