Числа
Стандартные числовые типы
Абстрактные числовые типы
Core.NumberТип
Number
Абстрактный супертип для всех числовых типов.
исходный код
Core.RealТип
Real <: Number
Абстрактный супертип для всех вещественных чисел.
исходный код
Core.AbstractFloatТип
AbstractFloat <: Real
Абстрактный супертип для всех чисел с плавающей точкой.
исходный код
Core.IntegerТип
Integer <: Real
Абстрактный супертип для всех целых чисел.
исходный код
Core.SignedТип
Signed <: Integer
Абстрактный супертип для всех целых чисел со знаком.
исходный код
Core.UnsignedТип
Unsigned <: Integer
Абстрактный супертип для всех целых чисел без знака.
исходный код
Base.AbstractIrrationalТип
AbstractIrrational <: Real
Числовой тип, представляющий точное иррациональное значение.
исходный кодКонкретные числовые типы
Core.Float16Тип
Float16 <: AbstractFloat
Тип числа с плавающей точкой 16 бит.
исходный код
Core.Float32Тип
Float32 <: AbstractFloat
Тип числа с плавающей точкой 32 бит.
исходный код
Core.Float64Тип
Float64 <: AbstractFloat
Тип числа с плавающей точкой 64 бит.
исходный код
Base.MPFR.BigFloatТип
BigFloat <: AbstractFloat
Тип числа с плавающей точкой произвольной точности.
исходный код
Core.BoolТип
Bool <: Integer
Булевый тип.
исходный код
Core.Int8Тип
Int8 <: Signed
Целый тип со знаком 8 бит.
исходный код
Core.UInt8Тип
UInt8 <: Unsigned
Целый тип без знака 8 бит.
исходный код
Core.Int16Тип
Int16 <: Signed
Целый тип со знаком 16 бит.
исходный код
Core.UInt16Тип
UInt16 <: Unsigned
Целый тип без знака 16 бит.
исходный код
Core.Int32Тип
Int32 <: Signed
Целый тип со знаком 32 бит.
исходный код
Core.UInt32Тип
UInt32 <: Unsigned
Целый тип без знака 32 бит.
исходный код
Core.Int64Тип
Int64 <: Signed
Целый тип со знаком 64 бит.
исходный код
Core.UInt64Тип
UInt64 <: Unsigned
Целый тип без знака 64 бит.
исходный код
Core.Int128Тип
Int128 <: Signed
Целый тип со знаком 128 бит.
исходный код
Core.UInt128Тип
UInt128 <: Unsigned
Целый тип без знака 128 бит.
исходный код
Base.GMP.BigIntТип
BigInt <: Signed
Целый тип произвольной точности.
исходный код
Base.ComplexТип
Complex{T<:Real} <: Number
Тип комплексного числа с действительной и мнимой частью типа T.
ComplexF16, ComplexF32 и ComplexF64 являются псевдонимами Complex{Float16}, Complex{Float32} и Complex{Float64} соответственно.
Base.RationalТип
Rational{T<:Integer} <: Real
Тип рационального числа со числителем и знаменателем типа T.
Base.IrrationalТип
Irrational{sym} <: AbstractIrrational
Числовой тип, представляющий точное иррациональное значение, обозначенное символом sym.
Форматы данных
Base.digitsФункция
digits([T<:Integer], n::Integer; base::T = 10, pad::Integer = 1)
Возвращает массив с типом элементов T (по умолчанию Int) цифр числа n в заданной системе счисления, необязательно дополняя нулями до указанного размера. Более значимые цифры находятся в индексах с большими значениями, так что n == sum([digits[k]*base^(k-1) for k=1:length(digits)]).
Примеры
julia> digits(10, base = 10)
2-element Array{Int64,1}:
0
1
julia> digits(10, base = 2)
4-element Array{Int64,1}:
0
1
0
1
julia> digits(10, base = 2, pad = 6)
6-element Array{Int64,1}:
0
1
0
1
0
0
исходный код
Base.digits!Функция
digits!(array, n::Integer; base::Integer = 10)
Заполняет массив цифрами числа n в заданной системе счисления. Более значимые цифры находятся в индексах с большими значениями. Если длина массива недостаточна, наименее значимые цифры заполняются до длины массива. Если длина массива избыточна, избыточная часть заполняется нулями.
Примеры
julia> digits!([2,2,2,2], 10, base = 2)
4-element Array{Int64,1}:
0
1
0
1
julia> digits!([2,2,2,2,2,2], 10, base = 2)
6-element Array{Int64,1}:
0
1
0
1
0
0
исходный код
Base.bitstringФункция
bitstring(n)
Строка, представляющая собой буквальное двоичное представление числа.
Примеры
julia> bitstring(4) "0000000000000000000000000000000000000000000000000000000000000100" julia> bitstring(2.2) "0100000000000001100110011001100110011001100110011001100110011010"исходный код
Base.parseФункция
parse(type, str; base)
Парсит строку как число. Для типов Integer, можно указать основание (по умолчанию 10). Для чисел с плавающей точкой строка парсится как десятичное число с плавающей точкой. Типы Complex парсятся из десятичных строк вида "R±Iim" как Complex(R,I) запрошенного типа; "i" или "j" могут быть использованы вместо "im", и "R" или "Iim" также допускаются. Если строка не содержит допустимого числа, генерируется ошибка.
Примеры
julia> parse(Int, "1234")
1234
julia> parse(Int, "1234", base = 5)
194
julia> parse(Int, "afc", base = 16)
2812
julia> parse(Float64, "1.2e-3")
0.0012
julia> parse(Complex{Float64}, "3.2e-1 + 4.5im")
0.32 + 4.5im
source
Base.tryparseФункция
tryparse(type, str; base)
Подобно parse, но возвращает либо значение запрошенного типа, либо nothing, если строка не содержит допустимого числа.
Base.bigФункция
big(x)
Преобразовать число в представление с максимальной точностью (обычно BigInt или BigFloat). См. BigFloat для получения информации о некоторых подводных камнях с числами с плавающей точкой.
Base.signedФункция
signed(x)
Преобразовать число в целое со знаком. Если аргумент беззнаковый, он повторно интерпретируется как со знаком без проверки на переполнение.
source
Base.unsignedФункция
unsigned(x) -> Unsigned
Преобразовать число в целое без знака. Если аргумент со знаком, он повторно интерпретируется как без знака без проверки на отрицательные значения.
Примеры
julia> unsigned(-2) 0xfffffffffffffffe julia> unsigned(2) 0x0000000000000002 julia> signed(unsigned(-2)) -2source
Base.floatМетод
float(x)
Преобразовать число или массив в тип данных с плавающей точкой.
source
Base.Math.significandФункция
significand(x)
Извлечь significand(s) (также известную как мантиссу) в двоичном представлении числа с плавающей точкой. Если x — это ненулевое конечное число, то результат будет числом того же типа на интервале $[1,2)$. В противном случае возвращается x.
Примеры
julia> significand(15.2)/15.2 0.125 julia> significand(15.2)*8 15.2source
Base.Math.exponentФункция
exponent(x) -> Int
Получить показатель степени нормализованного числа с плавающей точкой.
source
Base.complexМетод
complex(r, [i])
Преобразовать вещественные числа или массивы в комплексные. i по умолчанию равен нулю.
Примеры
julia> complex(7)
7 + 0im
julia> complex([1, 2, 3])
3-element Array{Complex{Int64},1}:
1 + 0im
2 + 0im
3 + 0im
source
Base.bswapФункция
bswap(n)
Инвертировать порядок байтов n.
Примеры
julia> a = bswap(0x10203040) 0x40302010 julia> bswap(a) 0x10203040 julia> string(1, base = 2) "1" julia> string(bswap(1), base = 2) "100000000000000000000000000000000000000000000000000000000"source
Base.hex2bytesФункция
hex2bytes(s::Union{AbstractString,AbstractVector{UInt8}})
Принимая строку или массив s ASCII-кодов последовательности шестнадцатеричных цифр, возвращает Vector{UInt8} байтов, соответствующих двоичному представлению: каждая последующая пара шестнадцатеричных цифр в s задаёт значение одного байта в возвращаемом векторе.
Длина s должна быть чётной, и возвращаемый массив имеет половину длины s. См. также hex2bytes! для варианта in-place и bytes2hex для обратного преобразования.
Примеры
julia> s = string(12345, base = 16)
"3039"
julia> hex2bytes(s)
2-element Array{UInt8,1}:
0x30
0x39
julia> a = b"01abEF"
6-element Base.CodeUnits{UInt8,String}:
0x30
0x31
0x61
0x62
0x45
0x46
julia> hex2bytes(a)
3-element Array{UInt8,1}:
0x01
0xab
0xef
source
Base.hex2bytes!Функция
hex2bytes!(d::AbstractVector{UInt8}, s::Union{String,AbstractVector{UInt8}})
Преобразовать массив s байтов, представляющих шестнадцатеричную строку, в его двоичное представление, аналогично hex2bytes, за исключением того, что вывод записывается непосредственно в d. Длина s должна быть ровно в два раза больше длины d.
Base.bytes2hexФункция
bytes2hex(a::AbstractArray{UInt8}) -> String
bytes2hex(io::IO, a::AbstractArray{UInt8})
Преобразовать массив a байтов в его шестнадцатеричное строковое представление, либо возвращая String через bytes2hex(a), либо записывая строку в io поток через bytes2hex(io, a). Шестнадцатеричные символы — все строчные.
Примеры
julia> a = string(12345, base = 16)
"3039"
julia> b = hex2bytes(a)
2-element Array{UInt8,1}:
0x30
0x39
julia> bytes2hex(b)
"3039"
sourceОбщие функции и константы чисел
Base.oneФункция
one(x) one(T::type)
Возвращает мультипликативную единицу для x: значение, такое что one(x)*x == x*one(x) == x. В качестве альтернативы one(T) может принять тип T, в этом случае one возвращает мультипликативную единицу для любого x типа T.
Если это возможно, one(x) возвращает значение того же типа, что и x, и one(T) возвращает значение типа T. Однако это может не выполняться для типов, представляющих величины с размерностью (например, время в днях), так как мультипликативная единица должна быть безразмерной. В этом случае one(x) должен возвращать значение единицы той же точности (и формы, для матриц), что и x.
Если вам нужна величина, которая имеет тот же тип, что и x, или типа T, даже если x имеет размерность, используйте oneunit вместо этого.
Примеры
julia> one(3.7) 1.0 julia> one(Int) 1 julia> import Dates; one(Dates.Day(1)) 1source
Base.oneunitФункция
oneunit(x::T) oneunit(T::Type)
Возвращает T(one(x)), где T — это либо тип аргумента, либо (если передан тип) сам аргумент. Это отличается от one для величин с размерностью: one — безразмерная (мультипликативная единица), а oneunit — величина с размерностью (того же типа, что и x, или типа T).
Примеры
julia> oneunit(3.7) 1.0 julia> import Dates; oneunit(Dates.Day) 1 daysource
Base.zeroФункция
zero(x)
Получить аддитивную единицу для типа x (x также может указать сам тип).
Примеры
julia> zero(1)
0
julia> zero(big"2.0")
0.0
julia> zero(rand(2,2))
2×2 Array{Float64,2}:
0.0 0.0
0.0 0.0
source
Base.imКонстанта
im
Мнимая единица.
Примеры
julia> im * im -1 + 0imsource
Base.MathConstants.piКонстанта
π pi
Константа пи.
Примеры
julia> pi π = 3.1415926535897...source
Base.MathConstants.ℯКонстанта
ℯ e
Константа ℯ.
Примеры
julia> ℯ ℯ = 2.7182818284590...source
Base.MathConstants.catalanКонстанта
catalan
Постоянная Каталана.
Примеры
julia> Base.MathConstants.catalan catalan = 0.9159655941772...source
Base.MathConstants.eulergammaКонстанта
γ eulergamma
Постоянная Эйлера.
Примеры
julia> Base.MathConstants.eulergamma γ = 0.5772156649015...source
Base.MathConstants.goldenКонстанта
φ golden
Золотое сечение.
Примеры
julia> Base.MathConstants.golden φ = 1.6180339887498...source
Base.InfПостоянная
Inf, Inf64
Положительная бесконечность типа Float64.
Base.Inf32Постоянная
Inf32
Положительная бесконечность типа Float32.
Base.Inf16Постоянная
Inf16
Положительная бесконечность типа Float16.
Base.NaNПостоянная
NaN, NaN64
Значение «не число» (NaN) типа Float64.
Base.NaN32Постоянная
NaN32
Значение «не число» (NaN) типа Float32.
Base.NaN16Постоянная
NaN16
Значение «не число» (NaN) типа Float16.
Base.issubnormalФункция
issubnormal(f) -> Bool
Проверка, является ли число с плавающей запятой субнормальным.
исходный код
Base.isfiniteФункция
isfinite(f) -> Bool
Проверка, является ли число конечным.
Примеры
julia> isfinite(5) true julia> isfinite(NaN32) falseисходный код
Base.isinfФункция
isinf(f) -> Bool
Проверка, является ли число бесконечным.
исходный код
Base.isnanФункция
isnan(f) -> Bool
Проверка, является ли число с плавающей запятой значением «не число» (NaN).
исходный код
Base.iszeroФункция
iszero(x)
Возвращает true если x == zero(x); если x является массивом, проверяет, являются ли все элементы x нулями.
Примеры
julia> iszero(0.0) true julia> iszero([1, 9, 0]) false julia> iszero([false, 0, 0]) trueисходный код
Base.isoneФункция
isone(x)
Возвращает true если x == one(x); если x является массивом, проверяет, является ли x единичной матрицей.
Примеры
julia> isone(1.0) true julia> isone([1 0; 0 2]) false julia> isone([1 0; 0 true]) trueисходный код
Base.nextfloatФункция
nextfloat(x::IEEEFloat, n::Integer)
Результат n итеративных применений nextfloat к x если n >= 0, или -n применений prevfloat если n < 0.
nextfloat(x::AbstractFloat)
Возвращает наименьшее число с плавающей запятой y того же типа, что и x, такое, что x < y. Если такого числа y не существует (например, если x равно Inf или NaN), то возвращает x.
Base.prevfloatФункция
prevfloat(x::AbstractFloat, n::Integer)
Результат n итеративных применений prevfloat к x если n >= 0, или -n применений nextfloat если n < 0.
prevfloat(x::AbstractFloat)
Возвращает наибольшее число с плавающей запятой y того же типа, что и x, такое, что y < x. Если такого числа y не существует (например, если x равно -Inf или NaN), то возвращает x.
Base.isintegerФункция
isinteger(x) -> Bool
Проверка, является ли x численно равным некоторому целому числу.
Примеры
julia> isinteger(4.0) trueисходный код
Base.isrealФункция
isreal(x) -> Bool
Проверка, является ли x или все его элементы численно равными некоторому вещественному числу, включая бесконечности и NaN. isreal(x) истинно, если isequal(x, real(x)) истинно.
Примеры
julia> isreal(5.) true julia> isreal(Inf + 0im) true julia> isreal([4.; complex(0,1)]) falseисходный код
Core.Float32Метод
Float32(x [, mode::RoundingMode])
Создание Float32 из x. Если x не представлен точно, то mode определяет, как x округляется.
Примеры
julia> Float32(1/3, RoundDown) 0.3333333f0 julia> Float32(1/3, RoundUp) 0.33333334f0
См. RoundingMode для доступных режимов округления.
Core.Float64Метод
Float64(x [, mode::RoundingMode])
Создание Float64 из x. Если x не представлен точно, то mode определяет, как x округляется.
Примеры
julia> Float64(pi, RoundDown) 3.141592653589793 julia> Float64(pi, RoundUp) 3.1415926535897936
См. RoundingMode для доступных режимов округления.
Base.GMP.BigIntМетод
BigInt(x)
Создание целого числа произвольной точности. x может быть Int (или чем-то, что может быть преобразовано в Int). Обычные математические операторы определены для этого типа, и результаты продвинуты до BigInt.
Экземпляры могут быть созданы из строк с помощью parse, или с использованием литерала строки big.
Примеры
julia> parse(BigInt, "42") 42 julia> big"313" 313исходный код
Base.MPFR.BigFloatМетод
BigFloat(x)
Создание числа с плавающей запятой произвольной точности. x может быть Integer, Float64 или BigInt. Обычные математические операторы определены для этого типа, и результаты продвинуты до BigFloat.
Обратите внимание, что, поскольку десятичные литералы преобразуются в числа с плавающей запятой при разборе, BigFloat(2.1) может не давать ожидаемого результата. Вместо этого вы можете предпочесть инициализировать константы из строк с помощью parse, или с использованием литерала строки big.
julia> BigFloat(2.1) 2.100000000000000088817841970012523233890533447265625 julia> big"2.1" 2.099999999999999999999999999999999999999999999999999999999999999999999999999986исходный код
Base.Rounding.roundingФункция
rounding(T)
Получение текущего режима округления чисел с плавающей запятой для типа T, управляющего округлением основных арифметических функций (+, -, *, / и sqrt) и преобразованием типов.
См. RoundingMode для доступных режимов.
Base.Rounding.setroundingМетод
setrounding(T, mode)
Установить режим округления для типа с плавающей точкой T, контролируя округление основных арифметических функций (+, -, *, / и sqrt) и преобразование типов. Другие числовые функции могут давать некорректные или недопустимые значения при использовании режимов округления, отличных от значения по умолчанию RoundNearest.
Обратите внимание, что в настоящее время это поддерживается только для T == BigFloat.
Base.Rounding.setroundingМетод
setrounding(f::Function, T, mode)
Изменить режим округления для типа с плавающей точкой T на период f. Логически эквивалентно:
old = rounding(T) setrounding(T, mode) f() setrounding(T, old)
См. RoundingMode для доступных режимов округления.
Base.Rounding.get_zero_subnormalsФункция
get_zero_subnormals() -> Bool
Возвращает false если операции с субнормальными значениями с плавающей точкой ("денормы") подчиняются правилам для арифметики IEEE, и true если они могут быть преобразованы в нули.
Base.Rounding.set_zero_subnormalsФункция
set_zero_subnormals(yes::Bool) -> Bool
Если yes равно false, последующие операции с плавающей точкой следуют правилам арифметики IEEE для субнормальных значений ("денормов"). В противном случае, операции с плавающей точкой разрешено (но не обязательно) преобразовывать субнормальные входные или выходные данные в ноль. Возвращает true за исключением yes==true, но аппаратное обеспечение не поддерживает обнуление субнормальных чисел.
set_zero_subnormals(true) может ускорить некоторые вычисления на некоторых аппаратных платформах. Однако, это может нарушить тождества, такие как (x-y==0) == (x==y).
Целые числа
Base.count_onesФункция
count_ones(x::Integer) -> Integer
Количество единиц в двоичном представлении x.
Примеры
julia> count_ones(7) 3source
Base.count_zerosФункция
count_zeros(x::Integer) -> Integer
Количество нулей в двоичном представлении x.
Примеры
julia> count_zeros(Int32(2 ^ 16 - 1)) 16source
Base.leading_zerosФункция
leading_zeros(x::Integer) -> Integer
Количество нулей, предшествующих двоичному представлению x.
Примеры
julia> leading_zeros(Int32(1)) 31source
Base.leading_onesФункция
leading_ones(x::Integer) -> Integer
Количество единиц, предшествующих двоичному представлению x.
Примеры
julia> leading_ones(UInt32(2 ^ 32 - 2)) 31source
Base.trailing_zerosФункция
trailing_zeros(x::Integer) -> Integer
Количество нулей, следующих за двоичным представлением x.
Примеры
julia> trailing_zeros(2) 1source
Base.trailing_onesФункция
trailing_ones(x::Integer) -> Integer
Количество единиц, следующих за двоичным представлением x.
Примеры
julia> trailing_ones(3) 2source
Base.isoddФункция
isodd(x::Integer) -> Bool
Возвращает true если x нечетное (то есть не делится на 2), и false в противном случае.
Примеры
julia> isodd(9) true julia> isodd(10) falsesource
Base.isevenФункция
iseven(x::Integer) -> Bool
Возвращает true если x четное (то есть делится на 2), и false в противном случае.
Примеры
julia> iseven(9) false julia> iseven(10) truesource
Base.@int128_strМакрос
@int128_str str @int128_str(str)
@int128_str анализирует строку в Int128. Выбрасывает ArgumentError если строка не является допустимым целым числом
Base.@uint128_strМакрос
@uint128_str str @uint128_str(str)
@uint128_str анализирует строку в UInt128. Выбрасывает ArgumentError если строка не является допустимым целым числом
Вещественные числа большой точности
Тип BigFloat реализует арифметику с плавающей точкой произвольной точности с использованием библиотеки GNU MPFR.
Base.precisionФункция
precision(num::AbstractFloat)
Получить точность числа с плавающей точкой, как определено эффективным числом битов в мантиссе.
source
Base.precisionМетод
precision(BigFloat)
Получить точность (в битах), используемую в настоящее время для арифметики BigFloat.
Base.MPFR.setprecisionФункция
setprecision([T=BigFloat,] precision::Int)
Установить точность (в битах), которая будет использоваться для арифметики T.
setprecision(f::Function, [T=BigFloat,] precision::Integer)
Изменить точность арифметики T (в битах) на период f. Логически эквивалентно:
old = precision(BigFloat) setprecision(BigFloat, precision) f() setprecision(BigFloat, old)
Часто используется как setprecision(T, precision) do ... end
Base.MPFR.BigFloatМетод
BigFloat(x, prec::Int)
Создать представление x как BigFloat с точностью prec.
Base.MPFR.BigFloatМетод
BigFloat(x, rounding::RoundingMode)
Создать представление x как BigFloat с текущей глобальной точностью и режимом округления rounding.
Base.MPFR.BigFloatМетод
BigFloat(x, prec::Int, rounding::RoundingMode)
Создать представление x как BigFloat с точностью prec и режимом округления rounding.
Base.MPFR.BigFloatМетод
BigFloat(x)
Создать число с плавающей точкой произвольной точности. x может быть Integer, Float64 или BigInt. Обычные математические операторы определены для этого типа, а результаты повышены до BigFloat.
Обратите внимание, что из-за того, что десятичные литералы преобразуются в числа с плавающей точкой при парсинге, BigFloat(2.1) может не дать ожидаемого результата. Вместо этого вы можете инициализировать константы из строк с помощью parse или с помощью литерала строки big.
julia> BigFloat(2.1) 2.100000000000000088817841970012523233890533447265625 julia> big"2.1" 2.099999999999999999999999999999999999999999999999999999999999999999999999999986исходный код
BigFloat(x::String)
Создайте представление строки x как BigFloat.
Base.@big_strМакрос
@big_str str @big_str(str)
@big_str парсит строку в BigInt. Бросает ArgumentError, если строка не является допустимым целым числом. Удаляет все подчеркивания _ из строки.
© 2009–2019 Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and other contributors
Licensed under the MIT License.
https://docs.julialang.org/en/v0.7.0/base/numbers/