Ruby 1.9.2 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Integerクラス

class Integer

クラスの継承リスト: Integer < Numeric < Comparable < Object < Kernel < BasicObject

Abstract

整数の抽象クラス。サブクラスとして FixnumBignum があり ます。この 2 種類の整数は値の大きさに応じてお互いに自動的に変換されま す。ビット操作において整数は無限の長さのビットストリングとみなすことが できます。

インスタンスメソッド

self % other -> Fixnum | Bignum | Float

算術演算子。剰余を計算します。

[PARAM] other:
二項演算の右側の引数(対象)
[RETURN]
計算結果
self & other -> Fixnum | Bignum

ビット二項演算子。論理積を計算します。

[PARAM] other:
数値
1 & 1 #=> 1
2 & 3 #=> 2
self * other -> Fixnum | Bignum | Float

算術演算子。積を計算します。

[PARAM] other:
二項演算の右側の引数(対象)
[RETURN]
計算結果
self ** other [redefined by rational]

べき乗。

  • otherが正または0の整数(Integer)ならば、整数(Integer)を返す。
  • otherが負の整数(Integer)ならば、有理数(Rational)を返す。
  • otherが有理数(Rational)や浮動小数(Float)ならば、浮動小数(Float)を返す。
2 **  3          #=> 8
2 ** -3          #=> Rational(1, 8)
2 ** Rational(3) #=> 8.0
self ** other -> Fixnum | Bignum | Float

算術演算子。冪(べき乗)を計算します。

[PARAM] other:
二項演算の右側の引数(対象)
[RETURN]
計算結果
self + other -> Fixnum | Bignum | Float

算術演算子。和を計算します。

[PARAM] other:
二項演算の右側の引数(対象)
[RETURN]
計算結果
self - other -> Fixnum | Bignum | Float

算術演算子。差を計算します。

[PARAM] other:
二項演算の右側の引数(対象)
[RETURN]
計算結果
self / other [redefined by rational]

除算。

  • otherが有理数(Rational)ならば、有理数(Rational)を返す。
  • otherがそれ以外なら、Integer#/と同じ。つまり、 other が整数(Integer)ならば、整数(Integer)を(整除)、浮動小数(Float)ならば、 浮動小数(Float)を返す。 ただし、いずれも、other == 0 の時は、ZeroDivisionErrorとなる。
self / other -> Fixnum | Bignum | Float

算術演算子。商を計算します。

[PARAM] other:
二項演算の右側の引数(対象)
[RETURN]
計算結果
self < other -> bool

比較演算子。数値として小さいか判定します。

[PARAM] other:
比較対象の数値
[RETURN]
self よりも other が大きい場合 true を返します。 そうでなければ false を返します。
self << bits -> Fixnum | Bignum

シフト演算子。 bits だけビットを左にシフトします。

[PARAM] bits:
シフトさせるビット数
printf("%#b\n", 0b0101 << 1) #=> 0b1010
p -1 << 1 #=> -2
self <= other -> bool

比較演算子。数値として等しいまたは小さいか判定します。

[PARAM] other:
比較対象の数値
[RETURN]
self よりも other の方が大きい場合か、 両者が等しい場合 true を返します。 そうでなければ false を返します。
self <=> other -> Fixnum

self と other を比較して、self が大きい時に正、 等しい時に 0、小さい時に負の整数を返します。

[PARAM] other:
比較対象の数値
[RETURN]
-1 か 0 か 1 のいずれか
1 <=> 2 #=> -1
1 <=> 1 #=> 0
2 <=> 1 #=> 1
self == other -> bool

比較演算子。数値として等しいか判定します。

[PARAM] other:
比較対象の数値
[RETURN]
self と other が等しい場合 true を返します。 そうでなければ false を返します。
self > other -> bool

比較演算子。数値として大きいか判定します。

[PARAM] other:
比較対象の数値
[RETURN]
self よりも other の方が小さい場合 true を返します。 そうでなければ false を返します。
self >= other -> bool

比較演算子。数値として等しいまたは大きいか判定します。

[PARAM] other:
比較対象の数値
[RETURN]
self よりも other の方が小さい場合か、 両者が等しい場合 true を返します。 そうでなければ false を返します。
self >> bits -> Fixnum | Bignum

シフト演算子。bits だけビットを右にシフトします。

右シフトは、符号ビット(最上位ビット(MSB))が保持されます。 bitsが実数の場合、小数点以下を切り捨てた値でシフトします。

[PARAM] bits:
シフトさせるビット数
printf("%#b\n", 0b0101 >> 1) #=> 0b10
p -1 >> 1 #=> -1
self[nth] -> Fixnum

nth 番目のビット(最下位ビット(LSB)が 0 番目)が立っている時 1 を、そうでなければ 0 を返します。

[PARAM] nth:
何ビット目を指すかの数値
[RETURN]
1 か 0

self[nth]=bit (つまりビットの修正) が Integer にないのは、Numeric 関連クラスが immutable であるためです。

self ^ other -> Fixnum | Bignum

ビット二項演算子。排他的論理和を計算します。

[PARAM] other:
数値
1 ^ 1 #=> 0
2 ^ 3 #=> 1
chr -> String

文字コードに対応する 1 バイトの文字列を返します。

例えば65.chr は "A" を返します。

逆に文字列から文字コードを得るには "A"[0] とします

[RETURN]
1バイト文字列
[EXCEPTION] RangeError:
self が 0 から 255 の範囲外の場合に発生します。

[SEE_ALSO] String#[]

downto(min) {|n| ... } -> self
downto(min) -> Enumerable::Enumerator

self から min まで 1 ずつ減らしながらブロックを繰り返し実行します。 self < min であれば何もしません。

[PARAM] min:
数値
[RETURN]
self を返します。

[SEE_ALSO] Integer#upto, Integer#step, Integer#times

even? -> bool

self が偶数であれば真を返します。

Returns true if int is an even number.

integer? -> true

常に真を返します。

next -> Fixnum | Bignum
succ -> Fixnum | Bignum

self の次の整数を返します。

odd? -> bool

self が奇数であれば真を返します。

Returns true if int is an odd number.

ord -> Integer

Returns the int itself.

?a.ord    #=> 97

This method is intended for compatibility to character constant in Ruby 1.9. For example, ?a.ord returns 97 both in 1.8 and 1.9.

pred -> Integer

self から -1 した値を返します。

1.pred      #=> 0
(-1).pred   #=> -2
size -> Fixnum

整数の実装上のサイズをバイト数で返します。

現在の実装では Fixnum は、sizeof(long) 固定(多くの 32 bit マシンで 4 バイト)、Bignumは、システム依存です。

p 1.size
p 0x1_0000_0000.size
# => 4
     8
step(limit, step) {|n| ... } -> self

self からはじめ step を足しながら limit を越える 前までブロックを繰り返します。step は負の数も指定できます。 また、limit や step には Float なども指定できます。

Numeric#step も参照。

[PARAM] limit:
数値
[PARAM] step:
数値
[RETURN]
self を返します。
[EXCEPTION] ArgumentError:
step に 0 を指定した場合に発生します。

[SEE_ALSO] Integer#upto, Integer#downto, Integer#times

times {|n| ... } -> self
times -> Enumerable::Enumerator

self 回だけ(0 から self-1 まで)繰り返します。 self が負であれば何もしません。

[RETURN]
self を返します。
3.times { puts "Hello, World!" }
# Hello, World! と3行続いて表示される。

[SEE_ALSO] Integer#upto, Integer#downto, Integer#step

to_f -> Float

値を浮動小数点数(Float)に変換します。

to_i -> self
to_int -> self

self を返します。

to_s -> String
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
upto(max) -> Enumerable::Enumerator

self から max まで 1 ずつ増やしながら繰り返します。 self > max であれば何もしません。

[PARAM] max:
数値
[RETURN]
self を返します。

[SEE_ALSO] Integer#downto, Integer#step, Integer#times

self | other -> Fixnum | Bignum

ビット二項演算子。論理和を計算します。

[PARAM] other:
数値
1 | 1 #=> 1
2 | 3 #=> 3
~ -> Fixnum | Bignum

ビット演算子。否定を計算します。

~1  #=> -2
~3  #=> -4
~-4 #=> 3

追加されるメソッド

denominator [added by rational]

In an integer, the denominator is 1. Therefore, this method returns 1.

from_prime_division(pd) [added by mathn]

素因数分解の配列 pd から数を求めます。 pd は [素因数, 指数] 組の配列です。

例:

Integer.from_prime_division [[2,3],[3,2]]
# => 72 # == 2**3 * 3**2

Instance Methods

gcd(n) [added by rational]

self と n の最大公約数を Fixnum として返す。 self や n が負の場合は、正に変換してから計算する。

72.gcd 168           # -> 24
19.gcd 36            # -> 1
gcd2(int) [added by mathn]

self と int の最大公約数を求めます。

例:

12.gcd2 8
# => 4
gcdlcm(int) [added by rational]

最大公約数と最小公倍数の配列 [self.gcd, self.lcm] を返します。

6.gcdlcm 9     # -> [3, 18]
lcm(n) [added by rational]

self と n の最小公倍数を返す。 self や n が負の場合は、正に変換してから計算する。

6.lcm 7        # -> 42
6.lcm 9        # -> 18
numerator [added by rational]

In an integer, the value is the numerator of its rational equivalent. Therefore, this method returns self.

power!(other) [added by rational]

rationalで再定義される前のInteger#**の別名。 other が正または 0 の整数 (Integer) ならば、 整数 (Integer) を、それ以外なら、浮動小数 (Float) を返す。

prime_division [added by mathn]

self の素因数分解(の配列)を求めます。

例:

72.prime_division
# => [[2, 3], [3, 2]]
to_r [added by rational]

対応する有理数 (Rational) を返す。 Rational(self, 1) と同じ。

Methods

Classes