Ruby/Справочник/Bignum: различия между версиями
Содержимое удалено Содержимое добавлено
Byzantine (обсуждение | вклад) м орфография, викификатор |
DannyS712 (обсуждение | вклад) м <source> -> <syntaxhighlight> (phab:T237267) |
||
Строка 12:
=== Bignum#% ===
----
<
big.modulo(other) #-> numeric</
----
Возвращает остаток от деления чис#-> numeric
<
1234567890 % 1.2 #-> 4.56881898980299e-008
1234567890 % -2 #-> 0</
{{info|Полезно взглянуть в описание метода [[Ruby/Справочник/Numeric#Numeric#divmod|Numeric#divmod]] для получения более детальной информации}}
{{Идентичные методы|Bignum|%|modulo}}
Строка 25:
=== Bignum#& ===
----
<
----
Побитовое <tt>И</tt>.
Строка 31:
=== Bignum#* ===
----
<
----
Умножает число ''big'' на число ''other'' и возвращает результат.
<
1234567890 * 1.2 #-> 1481481468.0
1234567890 * -2 #-> -2469135780</
{{Похожие методы|Bignum|**|+|-|/|%}}
=== Bignum#** ===
----
<
big.rpower(other) #-> numeric</
----
Возводит число ''big'' в степень ''other'' (которая может быть целым, дробным или любым другим числом). Результат может быть класса [[Ruby/Справочник/Fixnum|Fixnum]], <tt>Bignum</tt> или [[Ruby/Справочник/Float|Float]].
<
123456789 ** 1.2 #-> 5126464716.09932
123456789 ** -2 #-> 6.5610001194102e-17</
{{Похожие методы|Bignum|*|+|-|/|%|power!}}
{{Идентичные методы|Bignum|**|rpower}}
Строка 53:
=== Bignum#+ ===
----
<
----
Складывает число ''big'' с числом ''other'' и возвращает результат.
<
1234567890 + 1.2 #-> 1234567891.2
1234567890 + (-2) #-> 1234567888</
{{Похожие методы|Bignum|**|*|-|/|%}}
=== Bignum#- ===
----
<
----
Вычитает из числа ''big'' число ''other'' и возвращает результат.
<
1234567890 - 1.2 #-> 1234567888.8
1234567890 - (-2) #-> 1234567892</
{{Похожие методы|Bignum|**|+|*|/|%}}
=== Bignum#-@ ===
----
<
----
Унарный минус (возвращает новый объект класса <tt>Bignum</tt>, значение которого равно 0-''big'')
Строка 79:
=== Bignum#/ ===
----
<
big.div(other) #-> numeric</
----
Делит число ''big'' на число ''other'' и возвращает результат.
<
1234567890 / 1.2 #-> 1028806575.0
1234567890 / (-2) #-> -617283945</
{{Похожие методы|Bignum|**|*|-|+|%|quo|rdiv}}
{{Идентичные методы|Bignum|/|div}}
Строка 91:
=== Bignum#<< ===
----
<
----
Побитовый сдвиг числа ''big'' влево на ''numeric'' позиций (вправо, если ''numeric'' меньше нуля).
Строка 98:
=== Bignum#<=> ===
----
<
----
Сравнение — возвращает −1, 0 или +1, если значение числа ''big'' меньше, равно или больше значения числа ''numeric'', соответственно. Это базис для тестов в примеси [[Ruby/Справочник/Comparable|Comparable]].
Строка 104:
=== Bignum# ===
----
<
----
Возвращает <tt>true</tt>, если число ''obj'' имеет такое же значение, что и число ''big''. В отличие от метода [[#Bignum#eql?|eql?]], приводит число ''obj'' к классу <tt>Bignum</tt>.
<
=== Bignum#>> ===
----
<
----
Побитовый сдвиг числа ''big'' вправо на ''numeric'' позиций (влево, если ''numeric'' меньше нуля).
Строка 118:
=== Bignum#[] ===
----
<
----
Побитовый доступ — возвращает ''n''ый бит (виртуальный) двоичного представления числа ''big'', где ''big''[0] — младший значащий бит.
<
50.downto(0) do |n|
print a[n]
end</
''результат'':
<tt>000101110110100000111000011110010100111100010111001</tt>
Строка 130:
=== Bignum#^ ===
----
<
----
Побитовое <tt>ИСКЛЮЧАЮЩЕЕ ИЛИ</tt>
Строка 136:
=== Bignum#abs ===
----
<
----
Возвращает [[w:Абсолютное значение|абсолютное значение]] числа ''big''.
<
=== Bignum#coerce ===
----
<
----
Возвращает массив, состоящий из чисел ''other'' и ''big'', которые преобразованы к классу <tt>Bignum</tt>.
<
result = 1234567890.coerce( 1234 ) #-> [1234, 1234567890]
result[0] #-> 1234
result[0].class #-> Bignum</
=== Bignum#div ===
----
<
big.div(other) #-> numeric</
----
Делит число ''big'' на число ''other'' и возвращает результат.
<
1234567890 / 1.2 #-> 1028806575.0
1234567890 / (-2) #-> -617283945</
{{Похожие методы|Bignum|**|*|-|+|%|quo|rdiv}}
{{Идентичные методы|Bignum|/|div}}
Строка 165:
=== Bignum#divmod ===
----
<
----
{{info|Полезно взглянуть в описание метода [[Ruby/Справочник/Numeric#Numeric#divmod|Numeric#divmod]] для получения более детальной информации}}
Строка 171:
=== Bignum#eql? ===
----
<
----
Возвращает <tt>true</tt>, если число ''obj'' имеет такое же значение, что и число ''big''. В отличие от метода [[#Bignum#==|==]], не занимается приведением типов.
<
=== Bignum#hash ===
----
<
----
Вычисляет [[w:Контрольная сумма|контрольную сумму]] на основе значения числа ''big''.
Строка 184:
=== Bignum#modulo ===
----
<
big.modulo(other) #-> numeric</
----
Возвращает остаток от деления числа ''big'' на число''other''.
Строка 194:
=== Bignum#power! ===
----
<
----
Производит возведение числа ''fix'' в степень ''other''.
<
1234567890.power!( -2 ) #-> 6.5610001194102e-019</
{{Похожие методы|Bignum|**|rpower}}
=== Bignum#quo ===
----
<
big.rdiv(other) #-> numeric</
----
Делит число ''big'' на число ''other'' и в качестве результата возвращает [[Ruby/Справочник/Rational|рациональное число]].
<
{{Похожие методы|Bignum|/|div}}
{{Идентичные методы|Bignum|quo|rdiv}}
Строка 213:
=== Bignum#rdiv ===
----
<
big.rdiv(other) #-> numeric</
----
Делит число ''big'' на число ''other'' и в качестве результата возвращает [[Ruby/Справочник/Rational|рациональное число]].
<
{{Похожие методы|Bignum|/|div}}
{{Идентичные методы|Bignum|quo|rdiv}}
Строка 223:
=== Bignum#remainder ===
----
<
----
Возвращает остаток от деления числа ''big'' на число ''numeric''.
<
-1234567890987654321.remainder(13731.24) #-> -9906.22531493148</
{{Похожие методы|Bignum|quo|rdiv|%|modulo}}
{{Внимание|Результат работы данного метода и методов % и modulo (которые по идее делают тоже самое) существенно отличаются}}
Строка 233:
=== Bignum#rpower ===
----
<
big.rpower(other) #-> numeric</
----
Производит возведение числа ''big'' в степень ''other''. Возвращает [[Ruby/Справочник/Rational|рациональное число]], если результат рациональный (то есть, когда ''other'' < 0).
<
1234567890.power!( -2 ) #-> Rational(1, 1524157875019052100)</
{{Идентичные методы|Bignum|**|rpower}}
{{Похожие методы|Bignum|power!}}
Строка 244:
=== Bignum#size ===
----
<
----
Возвращает количество байт машинного представления числа ''big''.
<
(256**20 - 1).size #-> 20
(256**40 - 1).size #-> 40</
=== Bignum#to_f ===
----
<
----
Преобразует число ''big'' в число класса [[Ruby/Справочник/Float|Float]]. Если число ''big'' не может быть преобразовано к классу [[Ruby/Справочник/Float|Float]], то возвращает [[w:Бесконечность|бесконечность]].
Строка 260:
=== Bignum#to_s ===
----
<
----
Возвращает строку, где число ''big'' имеет основание системы счисления равное ''base'' (между 2 и 36). По умолчанию ''base''=10 (то есть десятичная система счисления).
<
12345654321.to_s(2) #-> "1011011111110110111011110000110001"
12345654321.to_s(8) #-> "133766736061"
12345654321.to_s(16) #-> "2dfdbbc31"
78546939656932.to_s(36) #-> "rubyrules"</
{{Похожие методы|Bignum|to_f}}
=== Bignum#| ===
----
<
----
Побитовое <tt>ИЛИ</tt>.
Строка 278:
=== Bignum#≈ ===
----
<
----
Побитовое <tt>НЕ</tt>. Так как <tt>Bignum</tt> теоретически имеет бесконечную длину, то для вычисления результата берется число ''big'' на один бит длиннее старшего значащего бита (чтобы операция инверсии была обратимой).
<
sprintf("%X", ~0x499602d2) #-> "-499602d3"
~~1234567890 #-> 1234567890</
[[Категория:Ruby|Справочник/Bignum]]
|