Ruby/Справочник/Fixnum
Класс Fixnum < Integer
[править]Класс Fixnum - это целые числа (Integer), которые умещаются в одно машинное слово (минус 1 бит). Если в результате какой либо операции число класса Fixnum выходит за пределы этого диапазона, то значение автоматически преобразуется к классу Bignum. Объекты класса Fixnum имеют непосредственное значение. Это значит, что, когда они присваиваются или передаются в качестве параметра, происходит передача фактического объекта, не не ссылки. Присваивание не работает с ссылками на объекты Fixnum. Существует лишь один объект Fixnum для каждого целочисленного значения. Именно поэтому вы не можете добавить метод-одиночку для объекта Fixnum.
Примеси
Precision (prec, prec_f, prec_i)
Константы
XChar
Методы класса
Методы объекта
[], %, &, **, *, +, -@, -, /, <<, <=>, <=, <, ==, >=, >>, >, ^, abs, divmod, div, id2name, modulo, power!, quo, rdiv, rpower, size, to_f, to_sym, to_s, zero?, ||, ~
Fixnum::induced_from
[править]Fixnum.induced_from(obj) #-> fixnum
Преобразует obj в объект класса Fixnum. Работает с числовыми параметрами. Еще работает с символами, но рекомендуется не использовать данную возможность.
Fixnum#%
[править]fix % other #-> numeric
fix.modulo(other) #-> numeric
Возвращает остаток от деления числа fix на числоother.
5 % 2 #-> 1
5 % -2 #-> -1
5 % -2.2 #-> -1.6
Полезно взглянуть в описание метода Numeric#divmod для получения более детальной информации |
Методы % и modulo — абсолютно идентичны, то есть являются именами одного и того же метода |
Полезно посмотреть на методы **, +, -, / и *, которые имеют схожую функциональность |
Fixnum#&
[править]fix & other #-> integer
Побитовое И.
Fixnum#*
[править]fix * numeric #-> numeric_result
Производит умножение: результат является одним из потомков класса Numeric и зависит от величины результата.
Полезно посмотреть на методы **, +, -, / и %, которые имеют схожую функциональность |
Fixnum#**
[править]fix ** other #-> rational или numeric
fix.rpower(other) #-> numeric или rational
Производит возведение числа fix в степень other. Возвращает рациональное число, если результат рациональный (то есть, когда other < 0).
2 ** 8 #-> 256
2 ** -8 #-> Rational(1,256)
Методы ** и rpower — абсолютно идентичны, то есть являются именами одного и того же метода |
Полезно посмотреть на методы *, +, -, /, % и power!, которые имеют схожую функциональность |
Fixnum#+
[править]fix + numeric #-> numeric_result
Производит сложение: результат является одним из потомков класса Numeric и зависит от величины результата.
Полезно посмотреть на методы **, *, -, / и %, которые имеют схожую функциональность |
Fixnum#-
[править]fix - numeric #-> numeric_result
Производит вычитание: результат является одним из потомков класса Numeric и зависит от величины результата.
Полезно посмотреть на методы **, +, *, / и %, которые имеют схожую функциональность |
Fixnum#-@
[править]-fix #-> integer
Отрицание fix (может вернуть значение класса Bignum).
Fixnum#/
[править]fix / numeric #-> numeric_result
fix.div(numeric) #-> numeric_result
Производит целочисленное деление: результат является одним из потомков класса Numeric и зависит от величины результата.
Методы / и div — абсолютно идентичны, то есть являются именами одного и того же метода |
Полезно посмотреть на методы **, +, -, * и %, которые имеют схожую функциональность |
Fixnum#<
[править]fix < other #-> true или false
Возвращает true, если значение числа fix меньше, чем значение числа other.
Fixnum#<<
[править]fix << count #-> integer
Побитовый сдвиг числа fix влево на count позиций (вправо, если count меньше нуля).
Fixnum#<=
[править]fix <= other #-> true или false
Возвращает true, если значение числа fix меньше или равно значению числа other.
Fixnum#<=>
[править]fix <=> numeric #-> -1, 0, +1
Сравнение -- возвращает -1, 0 или +1, если значение числа fix меньше, равно или больше значения числа numeric, соответственно. Это базис для тестов в примеси Comparable.
Fixnum#==
[править]fix == other #-> true или false
Возвращает true, если значение числа fix равно значению числа other.
1 == 2 #-> false
1 == 1.0 #-> true
Fixnum#>
[править]fix > other #-> true или false
Возвращает true, если значение числа fix больше, чем значение числа other.
Fixnum#>=
[править]fix >= other #-> true или false
Возвращает true, если значение числа fix больше или равно, чем значение числа other.
Fixnum#>>
[править]fix >> count #-> integer
Побитовый сдвиг числа fix вправо на count позиций (влево, если count меньше нуля).
Fixnum#[]
[править]fix[n] #-> 0, 1
Побитовый доступ -- возвращает nый бит двоичного представления числа fix, где fix[0] -- младший significant бит.
a = 0b11001100101010
30.downto(0) do |n| print a[n] end
результат:
0000000000000000011001100101010
Fixnum#^
[править]fix ^ other #-> integer
Побитовое ИСКЛЮЧАЮЩЕЕ ИЛИ.
Fixnum#abs
[править]fix.abs #-> fixnum
Возвращает абсолютное значение числа fix.
-12345.abs #-> 12345
12345.abs #-> 12345
Fixnum#div
[править]fix / numeric #-> numeric_result
fix.div(numeric) #-> numeric_result
Производит целочисленное деление: результат является одним из потомков класса Numeric и зависит от величины результата.
Методы / и div — абсолютно идентичны, то есть являются именами одного и того же метода |
Fixnum#divmod
[править]fix.divmod(numeric) #-> array
Полезно взглянуть в описание метода Numeric#divmod для получения более детальной информации |
Fixnum#id2name
[править]fix.id2name #-> string или nil
Возвращает имя объекта с id равным fix. Возвращает nil, если в символьной таблице не найдено ни одного символа, соответствующего значению fix.
symbol = :@inst_var #-> :@inst_var
id = symbol.to_i #-> 9818
id.id2name #-> "@inst_var"
|
Fixnum#modulo
[править]fix % other #-> Numeric
fix.modulo(other) #-> Numeric
Возвращает остаток от деления числа fix на числоother.
Полезно взглянуть в описание метода Numeric#divmod для получения более детальной информации |
Методы % и modulo — абсолютно идентичны, то есть являются именами одного и того же метода |
Fixnum#power!
[править]fix.power!( other ) #-> numeric
Производит возведение числа fix в степень other.
2.power!( 8 ) #-> 256
2.power( -8 ) #-> 0.00390625
Полезно посмотреть на методы ** и rpower, которые имеют схожую функциональность |
Fixnum#quo
[править]fix.quo(numeric) #-> float
fix.rdiv(numeric) #-> float
Возвращает дробный результат деления числа fix на число numeric.
654321.quo(13731) #-> 47.6528293642124
654321.quo(13731.24) #-> 47.6519964693647
Методы quo и rdiv — абсолютно идентичны, то есть являются именами одного и того же метода |
Fixnum#rdiv
[править]fix.quo(numeric) #-> float
fix.rdiv(numeric) #-> float
Возвращает дробный результат деления числа fix на число numeric.
654321.rdiv(13731) #-> 47.6528293642124
654321.rdiv(13731.24) #-> 47.6519964693647
Методы quo и rdiv — абсолютно идентичны, то есть являются именами одного и того же метода |
Fixnum#rpower
[править]fix ** other #-> rational или numeric
fix.rpower(other) #-> rational или numeric
Производит возведение числа fix в степень other. Возвращает рациональное число, если результат рациональный (то есть, когда other < 0).
2.rpower( 8 ) #-> 256
2.rpower( -8 ) #-> Rational(1,256)
Методы ** и rpower — абсолютно идентичны, то есть являются именами одного и того же метода |
Полезно посмотреть на метод power!, который имеет схожую функциональность |
Fixnum#size
[править]fix.size #-> fixnum
Возвращает количество байт машинного представления числа fix.
1.size #-> 4
-1.size #-> 4
2147483647.size #-> 4
Fixnum#to_f
[править]fix.to_f #-> float
Преобразует значение числа fix к классу Float.
Полезно посмотреть на методы to_s и to_sym, которые имеют схожую функциональность |
Fixnum#to_s
[править]fix.to_s( base=10 ) #-> string
Возвращает строку, где число fix имеет основание системы счисления равное base (между 2 и 36). По умолчанию base=10 (то есть десятичная система счисления).
12345.to_s #-> "12345"
12345.to_s(2) #-> "11000000111001"
12345.to_s(8) #-> "30071"
12345.to_s(10) #-> "12345"
12345.to_s(16) #-> "3039"
12345.to_s(36) #-> "9ix"
Полезно посмотреть на методы to_f и to_sym, которые имеют схожую функциональность |
Fixnum#to_sym
[править]fix.to_sym #-> symbol
Возвращает символ, которому соответствует значение fix.
fred = :fred.to_i
fred.id2name #-> "fred"
fred.to_sym #-> :fred
Полезно посмотреть на методы to_s, to_f и id2name, которые имеют схожую функциональность |
Fixnum#zero?
[править]fix.zero? #-> true или false
Возвращает true, если значение fix равно нулю.
Fixnum#|
[править]fix | other #-> integer
Побитовое ИЛИ.
Fixnum#~
[править]~fix #-> integer
Побитовое НЕ.