Java Array Subtract subtract(int bytesPerDim, int dim, byte[] a, byte[] b, byte[] result)

Here you can find the source of subtract(int bytesPerDim, int dim, byte[] a, byte[] b, byte[] result)

Description

Result = a - b, where a >= b, else IllegalArgumentException is thrown.

License

Apache License

Declaration

public static void subtract(int bytesPerDim, int dim, byte[] a, byte[] b, byte[] result) 

Method Source Code

//package com.java2s;
/*/*  w w w  .j ava 2 s .c o m*/
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

public class Main {
    /** Result = a - b, where a >= b, else {@code IllegalArgumentException} is thrown.  */
    public static void subtract(int bytesPerDim, int dim, byte[] a, byte[] b, byte[] result) {
        int start = dim * bytesPerDim;
        int end = start + bytesPerDim;
        int borrow = 0;
        for (int i = end - 1; i >= start; i--) {
            int diff = (a[i] & 0xff) - (b[i] & 0xff) - borrow;
            if (diff < 0) {
                diff += 256;
                borrow = 1;
            } else {
                borrow = 0;
            }
            result[i - start] = (byte) diff;
        }
        if (borrow != 0) {
            throw new IllegalArgumentException("a < b");
        }
    }
}

Related

  1. subtract(final double[] v1, final double[] v2)
  2. subtract(final double[] vector1, final double[] vector2)
  3. subtract(float a[][][], float b[][][])
  4. subtract(float[] dividend, float[] divisor)
  5. subtract(int a, int[] b)
  6. subtract(int[] a, int[] b)
  7. subtract2(double[] v1, double[] v2, double[] res)
  8. subtractArray(double[] array1, double[] array2)
  9. subtractArray(float[] arr1, float[] arr2)