Tbpgr Blog

Employee Experience Engineer tbpgr(てぃーびー) のブログ

Ruby | ライブラリ | Bignum

パンくず

Ruby
ライブラリ
Bignum

概要

Rubyの組み込みライブラリのBignumクラスについて

Bignumの各メソッドのサンプル

bignum = (0b1 << 30) # => 2進数の1を30ビット左シフト演算 = 1073741824
puts bignum.class
puts bignum % 3   # => 1073741824/3の余り=1 | 余り
puts bignum & 3   # => 1073741824と3の論理積=0 | 論理積
puts bignum * 3   # => 1073741824×3=3221225472 |算術演算子 積
puts bignum ** 2  # => 1073741824*1073741824 |べき乗
puts bignum + 1   # => 1073741824+1=1073741825 |算術演算子 和
puts bignum - 1   # => 1073741824-1=1073741823 |算術演算子 差
puts bignum / 2   # => 1073741824/2=536870912 |算術演算子 商
puts bignum << 1  # => 1073741824<<1=2147483648 |シフト演算 左シフト
puts bignum >> 1  # => 107374182>>1=536870912 |シフト演算 右シフト
puts bignum <=> bignum  # => 107374182:107374182=0 |比較 同一
puts bignum <=> bignum+1  # => 107374182:107374183=-1 |比較 左辺が小さい
puts bignum <=> bignum-1  # => 107374182:107374181=1 |比較 左辺が大きい
puts bignum == bignum     # => 107374182==107374182=true |比較演算子 同一
puts bignum == 1          # => 107374182==1=false |比較演算子 相違
puts bignum[0]            # => 107374182の1ビット目を取得=0
puts (bignum+1)[0]        # => 107374183の1ビット名を取得=1
puts bignum ^ 1   # => 107374182と1の排他的論理和=1073741825
puts bignum.quo(2)  # => 107374182を2で割って結果をRationalで返す=536870912/1
puts bignum.size    # => 107374182のバイト数を取得=4 ※Bignumは、システム依存
puts bignum.to_f    # => 107374182を浮動小数点に変換=1073741824.0
puts bignum | 1     # => 107374182と1の論理和=1073741825

出力結果

Bignum
1
0
3221225472
1152921504606846976
1073741825
1073741823
536870912
2147483648
536870912
0
-1
1
true
false
0
1
1073741825
536870912/1
4
1073741824.0
1073741825