Java BigInteger Calculate clip(BigInteger bi, int numberOfBytes)

Here you can find the source of clip(BigInteger bi, int numberOfBytes)

Description

Used on BigIntegers known to fit into x number of bytes.

License

Open Source License

Parameter

Parameter Description
bi the @{code BigInteger} to clip
numberOfBytes number of bytes to clip to

Return

a new BigInteger

Declaration

public static BigInteger clip(BigInteger bi, int numberOfBytes) 

Method Source Code

//package com.java2s;
/**/* w w  w  . j  av  a2 s .  com*/
 *     Copyright (c) 2013, Will Szumski
 *
 *     This file is part of formicidae.
 *
 *     formicidae is free software: you can redistribute it and/or modify
 *     it under the terms of the GNU General Public License as published by
 *     the Free Software Foundation, either version 3 of the License, or
 *     (at your option) any later version.
 *
 *     formicidae is distributed in the hope that it will be useful,
 *     but WITHOUT ANY WARRANTY; without even the implied warranty of
 *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *     GNU General Public License for more details.
 *
 *     You should have received a copy of the GNU General Public License
 *     along with formicidae.  If not, see <http://www.gnu.org/licenses/>.
 */

import java.math.BigInteger;

import java.util.Arrays;

public class Main {
    /**
     * Used on BigIntegers known to fit into x number of bytes.
     *
     * Discards more significant bytes.
     *
     * {@link BigIntUtils#NUMBER_OF_BYTES_BYTE}
     * {@link BigIntUtils#NUMBER_OF_BYTES_SHORT}
     * {@link BigIntUtils#NUMBER_OF_BYTES_INT}
     * {@link BigIntUtils#NUMBER_OF_BYTES_LONG}
     *
     * @param bi the @{code BigInteger} to clip
     * @param numberOfBytes number of bytes to clip to
     * @return a new BigInteger
     */
    public static BigInteger clip(BigInteger bi, int numberOfBytes) {
        byte[] unclipped = bi.toByteArray();
        if (unclipped.length <= numberOfBytes) {
            //byte [] reversed = Arrays.copyOf(unclipped, numberOfBytes);
            //unclipped = ByteUtils.reverseArray(reversed);
            return bi;
        }
        byte[] constructionBytes = Arrays.copyOfRange(unclipped, unclipped.length - numberOfBytes,
                unclipped.length);
        return new BigInteger(constructionBytes);
    }
}

Related

  1. byte_size(BigInteger bi)
  2. calculateGx(BigInteger p, BigInteger g, BigInteger x)
  3. calculateRx_(BigInteger Rx, BigInteger n)
  4. castToBigInteger(Object val)
  5. chop(BigInteger in, int bits)
  6. clone(BigInteger[] data)
  7. copy_into_byte_array(BigInteger bi, byte[] a)
  8. copyOf(BigInteger[] data, int newLength)
  9. copyOfRange(BigInteger[] data, int from, int to)