Progress28.ru

IT Новости


09ae9cb0
3 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

String to biginteger java

Класс BigInteger на Java

Класс BigInteger используется для математической операции, которая включает в себя очень большие целочисленные вычисления, выходящие за пределы всех доступных примитивных типов данных.

Например, факториал 100 содержит 158 цифр, поэтому мы не можем сохранить его в любом доступном примитивном типе данных. Мы можем хранить в нем столько целых чисел, сколько захотим. Нет теоретического ограничения на верхнюю границу диапазона, потому что память распределяется динамически, но практически, поскольку память ограничена, вы можете хранить число, в котором содержится число бит Integer.MAX_VALUE, которого должно быть достаточно для хранения в основном всех больших значений.

Ниже приведен пример Java-программы, которая использует BigInteger для вычисления Factorial.

// Java-программа для поиска больших факториалов с использованием BigInteger
import java.math.BigInteger;
import java.util.Scanner;

public class Example

// Возвращает Факториал Н

static BigInteger factorial( int N)

BigInteger f = new BigInteger( «1» ); // Или BigInteger.ONE

// Умножаем f на 2, 3, . N

for ( int i = 2; i

public static void main(String args[]) throws Exception

Если нам нужно написать вышеуказанную программу на C ++, это было бы слишком большим и сложным, мы можем взглянуть на Factorial of Large Number .
Таким образом, класс BigInteger очень удобен в использовании из-за его большой библиотеки методов, и он также широко используется в конкурентном программировании.

Ниже приведен список простых утверждений в примитивной арифметике и аналогичных им выражений в терминах объектов BigInteger.

декларация

Инициализация:

И для целых чисел, доступных как строка, вы можете инициализировать их как:

Некоторые константы также определены в классе BigInteger для простоты инициализации:

Другими подобными функциями являются subtract (), multiply (), div (), remainder ()
Но все эти функции принимают BigInteger в качестве аргумента, поэтому, если мы хотим, чтобы эти операции с целыми числами или строки преобразовывали их в BigInteger, прежде чем передавать их в функции, как показано ниже:

Извлечение значения из BigInteger:

На самом деле CompareTo возвращает -1 (меньше), 0 (равно), 1 (больше) в соответствии со значениями.

Для равенства мы также можем использовать:

Методы класса BigInteger:

  1. BigInteger abs () : этот метод возвращает BigInteger, значение которого является абсолютным значением этого BigInteger.
  2. BigInteger add (BigInteger val) : этот метод возвращает BigInteger со значением (this + val).
  3. BigInteger и (BigInteger val) : этот метод возвращает BigInteger со значением (this & val).
  4. BigInteger andNot (BigInteger val) : этот метод возвращает BigInteger, значение которого (this &

val).

  • int bitCount () : Этот метод возвращает количество бит в двоичном представлении этого BigInteger, которое отличается от его знакового бита.
  • int bitLength () : Этот метод возвращает число бит в минимальном представлении этого дополнения BigInteger с двумя дополнениями, исключая знаковый бит.
  • byte byteValueExact () : Этот метод преобразует этот BigInteger в байт, проверяя потерянную информацию.
  • BigInteger clearBit (int n) : этот метод возвращает BigInteger, значение которого эквивалентно этому BigInteger с очищенным назначенным битом.
  • int compareTo (BigInteger val) : этот метод сравнивает этот BigInteger с указанным BigInteger.
  • Разделение BigInteger (BigInteger val) : этот метод возвращает BigInteger, значение которого (this / val).
  • BigInteger [] divAndRemainder (BigInteger val) : этот метод возвращает массив из двух BigInteger, содержащих (this / val), за которым следует (this% val).
  • double doubleValue () : Этот метод преобразует этот BigInteger в double.
  • boolean equals (Object x) : Этот метод сравнивает этот BigInteger с указанным объектом на равенство.
  • BigInteger flipBit (int n) : этот метод возвращает BigInteger, значение которого эквивалентно этому BigInteger с переключенным назначенным битом.
  • float floatValue () : этот метод преобразует этот BigInteger в число с плавающей точкой.
  • BigInteger gcd (BigInteger val) : этот метод возвращает BigInteger, значение которого является наибольшим общим делителем abs (this) и abs (val).
  • int getLowestSetBit () : Этот метод возвращает индекс самого правого (самого младшего) одного бита в этом BigInteger (число нулевых бит справа от самого правого одного бита).
  • int hashCode () : этот метод возвращает хеш-код для этого BigInteger.
  • int intValue () : Этот метод преобразует этот BigInteger в int.
  • int intValueExact () : Этот метод преобразует этот BigInteger в int, проверяя потерянную информацию.
  • boolean isProbablePrime (int уверенность) : этот метод возвращает true, если этот BigInteger, вероятно, является простым, false, если он определенно составной.
  • long longValue () : Этот метод преобразует этот BigInteger в long.
  • long longValueExact () : Этот метод преобразует этот BigInteger в long, проверяя потерянную информацию.
  • BigInteger max (BigInteger val) : этот метод возвращает максимум этого BigInteger и val.
  • BigInteger min (BigInteger val ) : этот метод возвращает минимум этого BigInteger и val.
  • Мод BigInteger (BigInteger m) : этот метод возвращает BigInteger, значение которого (этот мод m).
  • BigInteger modInverse (BigInteger m) : этот метод возвращает BigInteger, значение которого (this-1 mod m).
  • BigInteger modPow (показатель BigInteger, BigInteger m) : этот метод возвращает значение BigInteger, значение которого (thisexponent mod m).
  • BigInteger multiply (BigInteger val) : этот метод возвращает BigInteger, значение которого (this * val).
  • BigInteger negate () : этот метод возвращает BigInteger со значением (-this).
  • BigInteger nextProbablePrime () : этот метод возвращает первое целое число, большее, чем этот BigInteger, который, вероятно, является простым.
  • BigInteger not () : этот метод возвращает BigInteger со значением (

    this).

  • BigInteger или (BigInteger val) : этот метод возвращает BigInteger со значением (this | val).
  • BigInteger pow (int exponent) : этот метод возвращает BigInteger, значение которого (thisexponent).
  • s tatic BigInteger probablePrime (int bitLength, Random rnd) : этот метод возвращает положительный BigInteger, который, вероятно, является простым, с указанным bitLength.
  • BigInteger remainder (BigInteger val) : этот метод возвращает BigInteger, значение которого (это% val).
  • BigInteger setBit (int n) : этот метод возвращает BigInteger, значение которого эквивалентно этому BigInteger с установленным назначенным битом.
  • BigInteger shiftLeft (int n) : этот метод возвращает BigInteger, значение которого (это > n).
  • short shortValueExact () : Этот метод преобразует этот BigInteger в short, проверяя потерянную информацию.
  • int signum () : этот метод возвращает функцию signum этого BigInteger.
  • BigInteger sqrt () : этот метод возвращает целочисленный квадратный корень этого BigInteger.
  • BigInteger [] sqrtAndRemainder () : этот метод возвращает массив из двух BigInteger, содержащий целочисленный квадратный корень s из этого и его остаток this — s * s, соответственно.
  • BigInteger subtract (BigInteger val) : этот метод возвращает BigInteger, значение которого (this — val).
  • boolean testBit (int n) : этот метод возвращает true, если и только если установлен назначенный бит.
  • byte [] toByteArray () : Этот метод возвращает байтовый массив, содержащий представление двоичного дополнения этого BigInteger.
  • String toString () : этот метод возвращает десятичное строковое представление этого BigInteger.
  • String toString (int radix) : этот метод возвращает строковое представление этого BigInteger в заданном основании.
  • static BigInteger valueOf (long val) : этот метод возвращает BigInteger, значение которого равно значению указанного long.
  • BigInteger xor (BigInteger val) : этот метод возвращает BigInteger, значение которого (this ^ val).
  • SPOJ Проблемы:
    Таким образом, после вышеупомянутого знания функции класса BigInteger, мы можем легко решить многие сложные проблемы, но помните, что класс BigInteger для обработки внутренне использует массив целых чисел, операция над объектом BigIntegers выполняется не так быстро, как над примитивами, что является функцией добавления в BigIntgers. не требует постоянного времени, это занимает время, пропорциональное длине BigInteger, поэтому сложность программы будет меняться соответственно. Ниже приведены проблемы SPOJ, чтобы понять BigIntegers.

    Эта статья предоставлена Уткаршем Триведи. Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по обсуждаемой теме

    String to biginteger java

    Converting a String to an int , or its respective wrapper class Integer , is a common and simple operation. The same goes for the other way around, converting a Integer to String.

    There are multiple ways to achieve this simple conversion using methods built-in to the JDK.

    Converting String to Integer

    For converting String to Integer or int, there are four built-in approaches. The wrapper class Integer provides a few methods specifically for this use — parseInt() , valueOf() and decode() , although we can also use its constructor and pass a String into it.

    These three methods have different return types:

    • parseInt() — returns primitive int .
    • valueOf() — returns a new or cached instance of Integer
    • decode() — returns a new or cached instance of Integer

    That being said, it’s valid to raise a question:

    «What’s the difference between valueOf() and decode() then?

    The difference is that decode() also accepts other number representations, other than regular decimal — hex digits, octal digits, etc.

    Note: It’s better practice to instantiate an Integer with the help of the valueOf() method rather than relying on the constructor. This is because the valueOf() method will return a cached copy for any value between -128 and 127 inclusive, and by doing so will reduce the memory footprint.

    Integer.parseInt()

    The parseInt() method ships in two flavors:

    • parseInt(String s) — Accepting the String we’d like to parse
    • parseInt(String s, int radix) — Accepting the String as well as the base of the numeration system

    The parseInt() method converts the input String into a primitive int and throws a NumberFormatException if the String cannot be converted:

    Running this piece of code will yield:

    Integer.valueOf()

    The valueOf() ships in three flavors:

    • valueOf(String s) — Accepts a String and parses it into an Integer
    • valueOf(int i) — Accepts an int and parses it into an Integer
    • valueOf(String s, int radix) — Accepts a String and returns an Integer representing the value and then parses it with the given base

    The valueOf() method, unlike the parseInt() method, returns an Integer instead of a primitive int and also throws a NumberFormatException if the String cannot be converted properly and only accepts decimal numbers:

    Running this piece of code will yield:

    Integer.decode()

    The decode() method accepts a single parameter and comes in one flavor:

    • decode(String s) — Accepts a String and decodes it into an Integer

    The decode() method accepts decimal, hexadecimal and octal numbers, but doesn’t support binary:

    Running this piece of code will yield:

    Conclusion

    We’ve covered one of the fundamental topics of Java and common problem developers face — Converting a String to an Integer or int using tools shipped with the JDK.

    Читать еще:  Java string getbytes
    Ссылка на основную публикацию