dynamic include: JSON::Generator::GeneratorMethods::Integer (by json)
要約
整数の抽象クラス。サブクラスとして Fixnum と Bignum があります。この 2 種類の整数は値の大きさに応じてお互いに自動的に変換されます。ビット操作において整数は無限の長さのビットストリングとみなすことができます。
目次
- インスタンスメソッド
- 追加されるメソッド
継承しているメソッド
- Numericから継承しているメソッド
- Comparableから継承しているメソッド
動的includeで追加されるメソッド
- JSON::Generator::GeneratorMethods::Integer (by json)
インスタンスメソッド
chr -> String[permalink][rdoc]chr(encoding) -> String-
与えられたエンコーディング encoding において self を文字コードと見た時、それに対応する一文字からなる文字列を返します。引数無しで呼ばれた場合は self を US-ASCII、ASCII-8BIT、デフォルト内部エンコーディングの順で優先的に解釈します。
p 65.chr # => "A" p 0x79.chr.encoding # => #<Encoding:US_ASCII> p 0x80.chr.encoding # => #<Encoding:ASCII_8BIT> p 12354.chr Encoding::UTF_8 # => "あ" p 12354.chr Encoding::EUC_JP # => RangeError: invalid codepoint 0x3042 in EUC-JP p 12354.chr Encoding::ASCII_8BIT # => RangeError: 12354 out of char range p (2**32).chr # => RangeError: bignum out of char range
- [PARAM] encoding:
- エンコーディングを表すオブジェクト。Encoding::UTF_8、'shift_jis' など。
- [RETURN]
- 一文字からなる文字列
- [EXCEPTION] RangeError:
- self を与えられたエンコーディングで正しく解釈できない場合に発生します。
[SEE_ALSO] String#ord
denominator -> Integer[permalink][rdoc]-
分母(常に1)を返します。
- [RETURN]
- 分母を返します。
[SEE_ALSO] Integer#numerator
downto(min) {|n| ... } -> self[permalink][rdoc]downto(min) -> Enumerator-
self から min まで 1 ずつ減らしながらブロックを繰り返し実行します。 self < min であれば何もしません。
- [PARAM] min:
- 数値
- [RETURN]
- self を返します。
[SEE_ALSO] Integer#upto, Numeric#step, Integer#times
even? -> bool[permalink][rdoc]-
自身が偶数であれば真を返します。そうでない場合は偽を返します。
gcd(n) -> Integer[permalink][rdoc]-
自身と整数 n の最大公約数を返します。
- [EXCEPTION] ArgumentError:
- n に整数以外のものを指定すると発生します。
例:
2.gcd(2) # => 2 3.gcd(7) # => 1 3.gcd(-7) # => 1 ((1<<31)-1).gcd((1<<61)-1) # => 1
また、self や n が 0 だった場合は、0 ではない方の整数の絶対値を返します。
3.gcd(0) # => 3 0.gcd(-7) # => 7
[SEE_ALSO] Integer#lcm, Integer#gcdlcm
gcdlcm(n) -> [Integer][permalink][rdoc]-
自身と整数 n の最大公約数と最小公倍数の配列 [self.gcd(n), self.lcm(n)] を返します。
- [EXCEPTION] ArgumentError:
- n に整数以外のものを指定すると発生します。
例:
2.gcdlcm(2) # => [2, 2] 3.gcdlcm(-7) # => [1, 21] ((1<<31)-1).gcdlcm((1<<61)-1) # => [1, 4951760154835678088235319297]
[SEE_ALSO] Integer#gcd, Integer#lcm
integer? -> true[permalink][rdoc]-
常に真を返します。
lcm(n) -> Integer[permalink][rdoc]-
自身と整数 n の最小公倍数を返します。
- [EXCEPTION] ArgumentError:
- n に整数以外のものを指定すると発生します。
例:
2.lcm(2) # => 2 3.lcm(-7) # => 21 ((1<<31)-1).lcm((1<<61)-1) # => 4951760154835678088235319297
また、self や n が 0 だった場合は、0 を返します。
3.lcm(0) # => 0 0.lcm(-7) # => 0
[SEE_ALSO] Integer#gcd, Integer#gcdlcm
next -> Fixnum | Bignum[permalink][rdoc]succ -> Fixnum | Bignum-
self の次の整数を返します。
numerator -> Integer[permalink][rdoc]-
分子(常に自身)を返します。
- [RETURN]
- 分子を返します。
[SEE_ALSO] Integer#denominator
odd? -> bool[permalink][rdoc]-
自身が奇数であれば真を返します。そうでない場合は偽を返します。
ord -> Integer[permalink][rdoc]-
自身を返します。
10.ord #=> 10 # String#ord ?a.ord #=> 97
[SEE_ALSO] String#ord
pred -> Integer[permalink][rdoc]-
self から -1 した値を返します。
1.pred #=> 0 (-1).pred #=> -2
rationalize -> Rational[permalink][rdoc]rationalize(eps) -> Rational-
自身を Rational に変換します。
- [PARAM] eps:
- 許容する誤差
引数 eps は常に無視されます。
例:
2.rationalize # => (2/1) 2.rationalize(100) # => (2/1) 2.rationalize(0.1) # => (2/1)
times {|n| ... } -> self[permalink][rdoc]times -> Enumerator-
self 回だけ繰り返します。 self が正の整数でない場合は何もしません。
またブロックパラメータには 0 から self - 1 までの数値が渡されます。
3.times { puts "Hello, World!" } # Hello, World! と3行続いて表示される。 0.times { puts "Hello, World!" } # 何も表示されない。 5.times {|n| print n } # 01234 と表示される。[SEE_ALSO] Integer#upto, Integer#downto, Numeric#step
to_i -> self[permalink][rdoc]to_int -> self-
self を返します。
to_r -> Rational[permalink][rdoc]-
自身を Rational に変換します。
例:
1.to_r # => (1/1) (1<<64).to_r # => (18446744073709551616/1)
to_s -> String[permalink][rdoc]to_s(base) -> String-
整数を 10 進文字列表現に変換します。
引数を指定すれば、それを基数とした文字列表現に変換します。
p 10.to_s(2) # => "1010" p 10.to_s(8) # => "12" p 10.to_s(16) # => "a" p 35.to_s(36) # => "z"
- [RETURN]
- 数値の文字列表現
- [PARAM] base:
- 基数となる 2 - 36 の数値。
- [EXCEPTION] ArgumentError:
- base に 2 - 36 以外の数値を指定した場合に発生します。
upto(max) {|n| ... } -> Fixnum | Bignum[permalink][rdoc]upto(max) -> Enumerator-
self から max まで 1 ずつ増やしながら繰り返します。 self > max であれば何もしません。
- [PARAM] max:
- 数値
- [RETURN]
- self を返します。
[SEE_ALSO] Integer#downto, Numeric#step, Integer#times
追加されるメソッド
each_prime(upper_bound) {|prime| ... } -> object[permalink][rdoc] [added by prime]each_prime(upper_bound) -> Enumerator[added by prime]-
全ての素数を列挙し、それぞれの素数をブロックに渡して評価します。
- [PARAM] upper_bound:
- 任意の正の整数を指定します。列挙の上界です。 nil が与えられた場合は無限に列挙し続けます。
- [RETURN]
- ブロックの最後に評価された値を返します。ブロックが与えられなかった場合は、Enumerator と互換性のある外部イテレータを返します。
[SEE_ALSO] Prime#each
from_prime_division(pd) -> Integer[permalink][rdoc] [added by prime]-
素因数分解された結果を元の数値に戻します。
- [PARAM] pd:
- 整数のペアの配列を指定します。含まれているペアの第一要素は素因数を、第二要素はその素因数の指数をあらわします。
[SEE_ALSO] Prime#int_from_prime_division
例:
Prime.int_from_prime_division([[2,2], [3,1]]) #=> 12 Prime.int_from_prime_division([[2,2], [3,2]]) #=> 36
prime? -> bool[permalink][rdoc] [added by prime]-
自身が素数である場合、真を返します。そうでない場合は偽を返します。
例:
1.prime? # => false 2.prime? # => true
[SEE_ALSO] Prime#prime?
prime_division(generator = Prime::Generator23.new) -> [[Integer, Integer]][permalink][rdoc] [added by prime]-
自身を素因数分解した結果を返します。
- [PARAM] generator:
- 素数生成器のインスタンスを指定します。
- [RETURN]
- 素因数とその指数から成るペアを要素とする配列です。つまり、戻り値の各要素は2要素の配列 [n,e] であり、それぞれの内部配列の第1要素 n は self の素因数、第2要素は n**e が self を割り切る最大の自然数 e です。
- [EXCEPTION] ZeroDivisionError:
- self がゼロである場合に発生します。
[SEE_ALSO] Prime#prime_division
例:
12.prime_division #=> [[2,2], [3,1]] 10.prime_division #=> [[2,1], [5,1]]
to_bn -> OpenSSL::BN[permalink][rdoc] [added by openssl]-
Integer を同じ数を表す OpenSSL::BN のオブジェクトに変換します。
現在のバージョンでは正しく実装されていません。
to_d -> BigDecimal[permalink][rdoc] [added by bigdecimal/util]-
自身を BigDecimal に変換します。BigDecimal(self) と同じです。
- [RETURN]
- BigDecimal に変換したオブジェクト