Класс Fixnum < Integer

править

Класс Fixnum - это целые числа (Integer), которые умещаются в одно машинное слово (минус 1 бит). Если в результате какой либо операции число класса Fixnum выходит за пределы этого диапазона, то значение автоматически преобразуется к классу Bignum. Объекты класса Fixnum имеют непосредственное значение. Это значит, что, когда они присваиваются или передаются в качестве параметра, происходит передача фактического объекта, не не ссылки. Присваивание не работает с ссылками на объекты Fixnum. Существует лишь один объект Fixnum для каждого целочисленного значения. Именно поэтому вы не можете добавить метод-одиночку для объекта Fixnum.


Примеси

Precision (prec, prec_f, prec_i)

Константы

XChar

Методы класса

induced_from

Методы объекта

[], %, &, **, *, +, -@, -, /, <<, <=>, <=, <, ==, >=, >>, >, ^, 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. Работает с числовыми параметрами. Еще работает с символами, но рекомендуется не использовать данную возможность.


fix % other        #-> numeric
fix.modulo(other)  #-> numeric

Возвращает остаток от деления числа fix на числоother.

5 % 2      #-> 1
5 % -2     #-> -1
5 % -2.2   #-> -1.6
 

Полезно взглянуть в описание метода Numeric#divmod для получения более детальной информации

 

Методы % и modulo — абсолютно идентичны, то есть являются именами одного и того же метода

 

Полезно посмотреть на методы **, +, -, / и *, которые имеют схожую функциональность


fix & other    #-> integer

Побитовое И.


fix * numeric  #->  numeric_result

Производит умножение: результат является одним из потомков класса Numeric и зависит от величины результата.

 

Полезно посмотреть на методы **, +, -, / и %, которые имеют схожую функциональность


fix ** other       #-> rational или numeric
fix.rpower(other)  #-> numeric или rational

Производит возведение числа fix в степень other. Возвращает рациональное число, если результат рациональный (то есть, когда other < 0).

2 ** 8    #-> 256
2 ** -8   #-> Rational(1,256)
 

Методы ** и rpower — абсолютно идентичны, то есть являются именами одного и того же метода

 

Полезно посмотреть на методы *, +, -, /, % и power!, которые имеют схожую функциональность


fix + numeric  #->  numeric_result

Производит сложение: результат является одним из потомков класса Numeric и зависит от величины результата.

 

Полезно посмотреть на методы **, *, -, / и %, которые имеют схожую функциональность


fix - numeric  #->  numeric_result

Производит вычитание: результат является одним из потомков класса Numeric и зависит от величины результата.

 

Полезно посмотреть на методы **, +, *, / и %, которые имеют схожую функциональность


-fix  #->  integer

Отрицание fix (может вернуть значение класса Bignum).


fix / numeric     #->  numeric_result
fix.div(numeric)  #->  numeric_result

Производит целочисленное деление: результат является одним из потомков класса Numeric и зависит от величины результата.

 

Методы / и div — абсолютно идентичны, то есть являются именами одного и того же метода

 

Полезно посмотреть на методы **, +, -, * и %, которые имеют схожую функциональность


fix < other    #-> true или false

Возвращает true, если значение числа fix меньше, чем значение числа other.


fix << count    #-> integer

Побитовый сдвиг числа fix влево на count позиций (вправо, если count меньше нуля).


fix <= other    #-> true или false

Возвращает true, если значение числа fix меньше или равно значению числа other.


fix <=> numeric   #-> -1, 0, +1

Сравнение -- возвращает -1, 0 или +1, если значение числа fix меньше, равно или больше значения числа numeric, соответственно. Это базис для тестов в примеси Comparable.


fix == other    #-> true или false

Возвращает true, если значение числа fix равно значению числа other.

1 == 2      #-> false
1 == 1.0    #-> true

fix > other    #-> true или false

Возвращает true, если значение числа fix больше, чем значение числа other.


fix >= other    #-> true или false

Возвращает true, если значение числа fix больше или равно, чем значение числа other.


fix >> count    #-> integer

Побитовый сдвиг числа fix вправо на count позиций (влево, если count меньше нуля).


fix[n]    #-> 0, 1

Побитовый доступ -- возвращает nый бит двоичного представления числа fix, где fix[0] -- младший significant бит.

a = 0b11001100101010
30.downto(0) do |n| print a[n] end

результат:

 0000000000000000011001100101010

fix ^ other    #-> integer

Побитовое ИСКЛЮЧАЮЩЕЕ ИЛИ.


fix.abs   #-> fixnum

Возвращает абсолютное значение числа fix.

-12345.abs   #-> 12345
12345.abs    #-> 12345

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"
 
  • Для более полного представления о работе данного метода советуем взглянуть на описания методов to_sym, String#intern и описание класса Symbol
  • Метод id2name никак не взаимодействует с методом Object#id

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, которые имеют схожую функциональность


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 равно нулю.


fix | other    #-> integer

Побитовое ИЛИ.


~fix    #-> integer

Побитовое НЕ.