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
Побитовое НЕ.