Иллюстрированный самоучитель по Java



              

Класс Biglnteger


Все примитивные целые типы имеют ограниченный диапазон значений. В целочисленной арифметике Java нет переполнения, целые числа приводятся по модулю, равному диапазону значений.

Для того чтобы было можно производить целочисленные вычисления с любой разрядностью, в состав Java API введен класс

Biglnteger

, хранящийся в пакете

java.math

. Этот класс расширяет класс

Number

, следовательно, в нем переопределены методы

doubleValue(), floatValue(), intValue(), longValue()

. Методы

byteVaiue()

и

shortvalue()

не переопределены, а прямо наследуются от класса

Number

.

Действия с объектами класса

Biglnteger

не приводят ни к переполнению, ни к приведению по модулю. Если результат операции велик, то число разрядов просто увеличивается. Числа хранятся в двоичной форме с дополнительным кодом.

Перед выполнением операции числа выравниваются по длине распространением знакового разряда.

Шесть конструкторов класса создают объект класса

BigDecimai

из строки символов (знака числа и цифр) или из массива байтов.

Две константы —

ZERO

и

ONE

— моделируют нуль и единицу в операциях с объектами класса

Biglnteger

.

Метод

toByteArray()

преобразует объект в массив байтов.

Большинство методов класса

Biglnteger

моделируют целочисленные операции и функции, возвращая объект класса

Biglnteger

:

abs()

— возвращает объект, содержащий абсолютное значение числа, хранящегося в данном объекте

this

;

add(x)

— операция

this + х

and(x)

— операция

this & х

;

andNot(x)

— операция

this & (~х)

;

divide (x)

— операция

this / х

divideAndRemainder(х)

— возвращает массив из двух объектов класса

Biglnteger

, содержащих частное и остаток от деления

this

на

х

;

gcd(x)

— наибольший общий делитель, абсолютных, значений объекта

this

и аргумента

х

;

mах(х)

— наибольшее из значений объекта

this

и аргумента

х

;

min(x)

— наименьшее из значений объекта

this

и аргумента

х

;

mod(x)

— остаток от деления объекта




Содержание  Назад  Вперед