UInt128 - Crystal 1.21.0

# struct UInt128

- UInt128
- Int
- Number
- Value
- Object

##
Defined in:

big/number.cr
int.cr
primitives.cr

##
Constant Summary

MAX = `~MIN`
MIN = `new(0)`

  TODO eventually update to literals once UInt128 bit support is finished

##
Constructors

- .from_digits(digits : Enumerable(Int), base : Int = 10) : self

  Returns a number for given digits and base.

- .new(value : String, base : Int = 10, whitespace : Bool = true, underscore : Bool = false, prefix : Bool = false, strict : Bool = true, leading_zero_is_octal : Bool = false) : self

  Returns an `UInt128` by invoking `#to_u128` on value.

- .new(ctx : YAML::ParseContext, node : YAML::Nodes::Node)
- .new(pull : JSON::PullParser)
- .new(value) : self

  Returns an `UInt128` by invoking `#to_u128` on value.

- .new!(value) : self

  Returns an `UInt128` by invoking `#to_u128!` on value.

##
Class Method Summary

- .from_json_object_key?(key : String)

##
Instance Method Summary

- #!=(other : Int8) : Bool

  Returns `true` if `self` is not equal to other.

- #!=(other : Int16) : Bool

  Returns `true` if `self` is not equal to other.

- #!=(other : Int32) : Bool

  Returns `true` if `self` is not equal to other.

- #!=(other : Int64) : Bool

  Returns `true` if `self` is not equal to other.

- #!=(other : Int128) : Bool

  Returns `true` if `self` is not equal to other.

- #!=(other : UInt8) : Bool

  Returns `true` if `self` is not equal to other.

- #!=(other : UInt16) : Bool

  Returns `true` if `self` is not equal to other.

- #!=(other : UInt32) : Bool

  Returns `true` if `self` is not equal to other.

- #!=(other : UInt64) : Bool

  Returns `true` if `self` is not equal to other.

- #!=(other : UInt128) : Bool

  Returns `true` if `self` is not equal to other.

- #!=(other : Float32) : Bool

  Returns `true` if `self` is not equal to other or if `self` and other are unordered.

- #!=(other : Float64) : Bool

  Returns `true` if `self` is not equal to other or if `self` and other are unordered.

- #&(other : Int8) : self

  Returns the result of performing a bitwise AND of `self`'s and other's bits.

- #&(other : Int16) : self

  Returns the result of performing a bitwise AND of `self`'s and other's bits.

- #&(other : Int32) : self

  Returns the result of performing a bitwise AND of `self`'s and other's bits.

- #&(other : Int64) : self

  Returns the result of performing a bitwise AND of `self`'s and other's bits.

- #&(other : Int128) : self

  Returns the result of performing a bitwise AND of `self`'s and other's bits.

- #&(other : UInt8) : self

  Returns the result of performing a bitwise AND of `self`'s and other's bits.

- #&(other : UInt16) : self

  Returns the result of performing a bitwise AND of `self`'s and other's bits.

- #&(other : UInt32) : self

  Returns the result of performing a bitwise AND of `self`'s and other's bits.

- #&(other : UInt64) : self

  Returns the result of performing a bitwise AND of `self`'s and other's bits.

- #&(other : UInt128) : self

  Returns the result of performing a bitwise AND of `self`'s and other's bits.

- #&*(other : Int8) : self

  Returns the result of multiplying `self` and other.

- #&*(other : Int16) : self

  Returns the result of multiplying `self` and other.

- #&*(other : Int32) : self

  Returns the result of multiplying `self` and other.

- #&*(other : Int64) : self

  Returns the result of multiplying `self` and other.

- #&*(other : Int128) : self

  Returns the result of multiplying `self` and other.

- #&*(other : UInt8) : self

  Returns the result of multiplying `self` and other.

- #&*(other : UInt16) : self

  Returns the result of multiplying `self` and other.

- #&*(other : UInt32) : self

  Returns the result of multiplying `self` and other.

- #&*(other : UInt64) : self

  Returns the result of multiplying `self` and other.

- #&*(other : UInt128) : self

  Returns the result of multiplying `self` and other.

- #&+(other : Int8) : self

  Returns the result of adding `self` and other.

- #&+(other : Int16) : self

  Returns the result of adding `self` and other.

- #&+(other : Int32) : self

  Returns the result of adding `self` and other.

- #&+(other : Int64) : self

  Returns the result of adding `self` and other.

- #&+(other : Int128) : self

  Returns the result of adding `self` and other.

- #&+(other : UInt8) : self

  Returns the result of adding `self` and other.

- #&+(other : UInt16) : self

  Returns the result of adding `self` and other.

- #&+(other : UInt32) : self

  Returns the result of adding `self` and other.

- #&+(other : UInt64) : self

  Returns the result of adding `self` and other.

- #&+(other : UInt128) : self

  Returns the result of adding `self` and other.

- #&-(other : Int8) : self

  Returns the result of subtracting `self` and other.

- #&-(other : Int16) : self

  Returns the result of subtracting `self` and other.

- #&-(other : Int32) : self

  Returns the result of subtracting `self` and other.

- #&-(other : Int64) : self

  Returns the result of subtracting `self` and other.

- #&-(other : Int128) : self

  Returns the result of subtracting `self` and other.

- #&-(other : UInt8) : self

  Returns the result of subtracting `self` and other.

- #&-(other : UInt16) : self

  Returns the result of subtracting `self` and other.

- #&-(other : UInt32) : self

  Returns the result of subtracting `self` and other.

- #&-(other : UInt64) : self

  Returns the result of subtracting `self` and other.

- #&-(other : UInt128) : self

  Returns the result of subtracting `self` and other.

- #&-
- #*(other : Int8) : self

  Returns the result of multiplying `self` and other.

- #*(other : Int16) : self

  Returns the result of multiplying `self` and other.

- #*(other : Int32) : self

  Returns the result of multiplying `self` and other.

- #*(other : Int64) : self

  Returns the result of multiplying `self` and other.

- #*(other : Int128) : self

  Returns the result of multiplying `self` and other.

- #*(other : UInt8) : self

  Returns the result of multiplying `self` and other.

- #*(other : UInt16) : self

  Returns the result of multiplying `self` and other.

- #*(other : UInt32) : self

  Returns the result of multiplying `self` and other.

- #*(other : UInt64) : self

  Returns the result of multiplying `self` and other.

- #*(other : UInt128) : self

  Returns the result of multiplying `self` and other.

- #*(other : Float32) : Float32

  Returns the result of multiplying `self` and other.

- #*(other : Float64) : Float64

  Returns the result of multiplying `self` and other.

- #+(other : Int8) : self

  Returns the result of adding `self` and other.

- #+(other : Int16) : self

  Returns the result of adding `self` and other.

- #+(other : Int32) : self

  Returns the result of adding `self` and other.

- #+(other : Int64) : self

  Returns the result of adding `self` and other.

- #+(other : Int128) : self

  Returns the result of adding `self` and other.

- #+(other : UInt8) : self

  Returns the result of adding `self` and other.

- #+(other : UInt16) : self

  Returns the result of adding `self` and other.

- #+(other : UInt32) : self

  Returns the result of adding `self` and other.

- #+(other : UInt64) : self

  Returns the result of adding `self` and other.

- #+(other : UInt128) : self

  Returns the result of adding `self` and other.

- #+(other : Float32) : Float32

  Returns the result of adding `self` and other.

- #+(other : Float64) : Float64

  Returns the result of adding `self` and other.

- #-(other : Int8) : self

  Returns the result of subtracting `self` and other.

- #-(other : Int16) : self

  Returns the result of subtracting `self` and other.

- #-(other : Int32) : self

  Returns the result of subtracting `self` and other.

- #-(other : Int64) : self

  Returns the result of subtracting `self` and other.

- #-(other : Int128) : self

  Returns the result of subtracting `self` and other.

- #-(other : UInt8) : self

  Returns the result of subtracting `self` and other.

- #-(other : UInt16) : self

  Returns the result of subtracting `self` and other.

- #-(other : UInt32) : self

  Returns the result of subtracting `self` and other.

- #-(other : UInt64) : self

  Returns the result of subtracting `self` and other.

- #-(other : UInt128) : self

  Returns the result of subtracting `self` and other.

- #-(other : Float32) : Float32

  Returns the result of subtracting `self` and other.

- #-(other : Float64) : Float64

  Returns the result of subtracting `self` and other.

- #/(other : Int8) : Float64
- #/(other : UInt8) : Float64
- #/(other : Int16) : Float64
- #/(other : UInt16) : Float64
- #/(other : Int32) : Float64
- #/(other : UInt32) : Float64
- #/(other : Int64) : Float64
- #/(other : UInt64) : Float64
- #/(other : Int128) : Float64
- #/(other : UInt128) : Float64
- #/(other : Float32) : Float32
- #/(other : Float64) : Float64
- #/(other : BigInt) : BigFloat
- #/(other : BigDecimal) : BigDecimal
- #/(other : BigRational) : BigRational
- #<(other : Int8) : Bool

  Returns `true` if `self` is less than other.

- #<(other : Int16) : Bool

  Returns `true` if `self` is less than other.

- #<(other : Int32) : Bool

  Returns `true` if `self` is less than other.

- #<(other : Int64) : Bool

  Returns `true` if `self` is less than other.

- #<(other : Int128) : Bool

  Returns `true` if `self` is less than other.

- #<(other : UInt8) : Bool

  Returns `true` if `self` is less than other.

- #<(other : UInt16) : Bool

  Returns `true` if `self` is less than other.

- #<(other : UInt32) : Bool

  Returns `true` if `self` is less than other.

- #<(other : UInt64) : Bool

  Returns `true` if `self` is less than other.

- #<(other : UInt128) : Bool

  Returns `true` if `self` is less than other.

- #<(other : Float32) : Bool

  Returns `true` if `self` is less than other.

- #<(other : Float64) : Bool

  Returns `true` if `self` is less than other.

- #<=(other : Int8) : Bool

  Returns `true` if `self` is less than or equal to other.

- #<=(other : Int16) : Bool

  Returns `true` if `self` is less than or equal to other.

- #<=(other : Int32) : Bool

  Returns `true` if `self` is less than or equal to other.

- #<=(other : Int64) : Bool

  Returns `true` if `self` is less than or equal to other.

- #<=(other : Int128) : Bool

  Returns `true` if `self` is less than or equal to other.

- #<=(other : UInt8) : Bool

  Returns `true` if `self` is less than or equal to other.

- #<=(other : UInt16) : Bool

  Returns `true` if `self` is less than or equal to other.

- #<=(other : UInt32) : Bool

  Returns `true` if `self` is less than or equal to other.

- #<=(other : UInt64) : Bool

  Returns `true` if `self` is less than or equal to other.

- #<=(other : UInt128) : Bool

  Returns `true` if `self` is less than or equal to other.

- #<=(other : Float32) : Bool

  Returns `true` if `self` is less than or equal to other.

- #<=(other : Float64) : Bool

  Returns `true` if `self` is less than or equal to other.

- #==(other : Int8) : Bool

  Returns `true` if `self` is equal to other.

- #==(other : Int16) : Bool

  Returns `true` if `self` is equal to other.

- #==(other : Int32) : Bool

  Returns `true` if `self` is equal to other.

- #==(other : Int64) : Bool

  Returns `true` if `self` is equal to other.

- #==(other : Int128) : Bool

  Returns `true` if `self` is equal to other.

- #==(other : UInt8) : Bool

  Returns `true` if `self` is equal to other.

- #==(other : UInt16) : Bool

  Returns `true` if `self` is equal to other.

- #==(other : UInt32) : Bool

  Returns `true` if `self` is equal to other.

- #==(other : UInt64) : Bool

  Returns `true` if `self` is equal to other.

- #==(other : UInt128) : Bool

  Returns `true` if `self` is equal to other.

- #==(other : Float32) : Bool

  Returns `true` if `self` is equal to other.

- #==(other : Float64) : Bool

  Returns `true` if `self` is equal to other.

- #>(other : Int8) : Bool

  Returns `true` if `self` is greater than other.

- #>(other : Int16) : Bool

  Returns `true` if `self` is greater than other.

- #>(other : Int32) : Bool

  Returns `true` if `self` is greater than other.

- #>(other : Int64) : Bool

  Returns `true` if `self` is greater than other.

- #>(other : Int128) : Bool

  Returns `true` if `self` is greater than other.

- #>(other : UInt8) : Bool

  Returns `true` if `self` is greater than other.

- #>(other : UInt16) : Bool

  Returns `true` if `self` is greater than other.

- #>(other : UInt32) : Bool

  Returns `true` if `self` is greater than other.

- #>(other : UInt64) : Bool

  Returns `true` if `self` is greater than other.

- #>(other : UInt128) : Bool

  Returns `true` if `self` is greater than other.

- #>(other : Float32) : Bool

  Returns `true` if `self` is greater than other.

- #>(other : Float64) : Bool

  Returns `true` if `self` is greater than other.

- #>=(other : Int8) : Bool

  Returns `true` if `self` is greater than or equal to other.

- #>=(other : Int16) : Bool

  Returns `true` if `self` is greater than or equal to other.

- #>=(other : Int32) : Bool

  Returns `true` if `self` is greater than or equal to other.

- #>=(other : Int64) : Bool

  Returns `true` if `self` is greater than or equal to other.

- #>=(other : Int128) : Bool

  Returns `true` if `self` is greater than or equal to other.

- #>=(other : UInt8) : Bool

  Returns `true` if `self` is greater than or equal to other.

- #>=(other : UInt16) : Bool

  Returns `true` if `self` is greater than or equal to other.

- #>=(other : UInt32) : Bool

  Returns `true` if `self` is greater than or equal to other.

- #>=(other : UInt64) : Bool

  Returns `true` if `self` is greater than or equal to other.

- #>=(other : UInt128) : Bool

  Returns `true` if `self` is greater than or equal to other.

- #>=(other : Float32) : Bool

  Returns `true` if `self` is greater than or equal to other.

- #>=(other : Float64) : Bool

  Returns `true` if `self` is greater than or equal to other.

- #^(other : Int8) : self

  Returns the result of performing a bitwise XOR of `self`'s and other's bits.

- #^(other : Int16) : self

  Returns the result of performing a bitwise XOR of `self`'s and other's bits.

- #^(other : Int32) : self

  Returns the result of performing a bitwise XOR of `self`'s and other's bits.

- #^(other : Int64) : self

  Returns the result of performing a bitwise XOR of `self`'s and other's bits.

- #^(other : Int128) : self

  Returns the result of performing a bitwise XOR of `self`'s and other's bits.

- #^(other : UInt8) : self

  Returns the result of performing a bitwise XOR of `self`'s and other's bits.

- #^(other : UInt16) : self

  Returns the result of performing a bitwise XOR of `self`'s and other's bits.

- #^(other : UInt32) : self

  Returns the result of performing a bitwise XOR of `self`'s and other's bits.

- #^(other : UInt64) : self

  Returns the result of performing a bitwise XOR of `self`'s and other's bits.

- #^(other : UInt128) : self

  Returns the result of performing a bitwise XOR of `self`'s and other's bits.

- #|(other : Int8) : self

  Returns the result of performing a bitwise OR of `self`'s and other's bits.

- #|(other : Int16) : self

  Returns the result of performing a bitwise OR of `self`'s and other's bits.

- #|(other : Int32) : self

  Returns the result of performing a bitwise OR of `self`'s and other's bits.

- #|(other : Int64) : self

  Returns the result of performing a bitwise OR of `self`'s and other's bits.

- #|(other : Int128) : self

  Returns the result of performing a bitwise OR of `self`'s and other's bits.

- #|(other : UInt8) : self

  Returns the result of performing a bitwise OR of `self`'s and other's bits.

- #|(other : UInt16) : self

  Returns the result of performing a bitwise OR of `self`'s and other's bits.

- #|(other : UInt32) : self

  Returns the result of performing a bitwise OR of `self`'s and other's bits.

- #|(other : UInt64) : self

  Returns the result of performing a bitwise OR of `self`'s and other's bits.

- #|(other : UInt128) : self

  Returns the result of performing a bitwise OR of `self`'s and other's bits.

- #abs

  Returns the absolute value of this number.

- #abs_unsigned : self

  Returns the absolute value of `self` as an unsigned value of the same size.

- #bit_reverse : self

  Reverses the bits of `self`; the least significant bit becomes the most significant, and vice-versa.

- #byte_swap : self

  Swaps the bytes of `self`; a little-endian value becomes a big-endian value, and vice-versa.

- #clone
- #leading_zeros_count

  Returns the number of leading `0`-bits.

- #neg_signed : Int128

  Returns the negative of `self` as a signed value of the same size.

- #popcount

  Counts `1`-bits in the binary representation of this integer.

- #rotate_left(n : Int) : self

  Returns the bitwise rotation of `self` n times in the most significant bit's direction.

- #rotate_right(n : Int) : self

  Returns the bitwise rotation of `self` n times in the least significant bit's direction.

- #to_f : Float64

  Returns `self` converted to `Float64`.

- #to_f! : Float64

  Returns `self` converted to `Float64`.

- #to_f32 : Float32

  Returns `self` converted to `Float32`.

- #to_f32! : Float32

  Returns `self` converted to `Float32`.

- #to_f64 : Float64

  Returns `self` converted to `Float64`.

- #to_f64! : Float64

  Returns `self` converted to `Float64`.

- #to_i : Int32

  Returns `self` converted to `Int32`.

- #to_i! : Int32

  Returns `self` converted to `Int32`.

- #to_i128 : Int128

  Returns `self` converted to `Int128`.

- #to_i128! : Int128

  Returns `self` converted to `Int128`.

- #to_i16 : Int16

  Returns `self` converted to `Int16`.

- #to_i16! : Int16

  Returns `self` converted to `Int16`.

- #to_i32 : Int32

  Returns `self` converted to `Int32`.

- #to_i32! : Int32

  Returns `self` converted to `Int32`.

- #to_i64 : Int64

  Returns `self` converted to `Int64`.

- #to_i64! : Int64

  Returns `self` converted to `Int64`.

- #to_i8 : Int8

  Returns `self` converted to `Int8`.

- #to_i8! : Int8

  Returns `self` converted to `Int8`.

- #to_signed : Int128

  Returns `self` converted to a signed value of the same size.

- #to_signed! : Int128

  Returns `self` converted to a signed value of the same size, wrapping in case of overflow.

- #to_u : UInt32

  Returns `self` converted to `UInt32`.

- #to_u! : UInt32

  Returns `self` converted to `UInt32`.

- #to_u128 : UInt128

  Returns `self` converted to `UInt128`.

- #to_u128! : UInt128

  Returns `self` converted to `UInt128`.

- #to_u16 : UInt16

  Returns `self` converted to `UInt16`.

- #to_u16! : UInt16

  Returns `self` converted to `UInt16`.

- #to_u32 : UInt32

  Returns `self` converted to `UInt32`.

- #to_u32! : UInt32

  Returns `self` converted to `UInt32`.

- #to_u64 : UInt64

  Returns `self` converted to `UInt64`.

- #to_u64! : UInt64

  Returns `self` converted to `UInt64`.

- #to_u8 : UInt8

  Returns `self` converted to `UInt8`.

- #to_u8! : UInt8

  Returns `self` converted to `UInt8`.

- #to_unsigned : UInt128

  Returns `self` converted to an unsigned value of the same size.

- #to_unsigned! : UInt128

  Returns `self` converted to an unsigned value of the same size, wrapping in case of overflow.

- #trailing_zeros_count

  Returns the number of trailing `0`-bits.

- #unsafe_chr : Char

  Returns a `Char` that has the unicode codepoint of `self`, without checking if this integer is in the range valid for chars (`0..0xd7ff` and `0xe000..0x10ffff`).

### Instance methods inherited from struct `Int`

%(other : BigInt) : BigInt
%(other : Int) %, &*(other : BigInt) : BigInt &*, &**(exponent : Int) : self &**, &+(other : BigInt) : BigInt &+, &-(other : BigInt) : BigInt &-, *(other : BigInt) : BigInt
*(other : BigRational) : BigRational
*(other : BigDecimal) : BigDecimal *, **(exponent : Int) : self
**(exponent : Float) : Float64 **, +(other : BigInt) : BigInt
+(other : BigRational) : BigRational
+(other : BigDecimal) : BigDecimal +, -(other : BigInt) : BigInt
-(other : BigFloat) : BigFloat
-(other : BigRational) : BigRational
-(other : BigDecimal) : BigDecimal -, /(other : BigFloat) : BigFloat
/(other : BigRational) /, //(other : Int::Primitive) //, <<(count : Int) <<, <=>(other : BigInt)
<=>(other : Int) : Int32
<=>(other : BigFloat) : Int32
<=>(other : BigRational) : Int32
<=>(other : BigDecimal) <=>, ===(char : Char) ===, >>(count : Int) >>, ~ ~, abs : self abs, bit(bit) bit, bit_length : Int32 bit_length, bits(range : Range) bits, bits_set?(mask) : Bool bits_set?, ceil : self ceil, chr : Char chr, day : Time::Span day, days : Time::Span days, digits(base = 10) : Array(Int32) digits, divisible_by?(num) : Bool divisible_by?, downto(to, &block : self -> ) : Nil
downto(to) downto, even? : Bool even?, fdiv(other) : Float64 fdiv, floor : self floor, gcd(other : self) : self
gcd(other : BigInt) : Int gcd, hour : Time::Span hour, hours : Time::Span hours, humanize_bytes(io : IO, precision : Int = 3, separator = '.', *, significant : Bool = true, unit_separator = nil, format : BinaryPrefixFormat = :IEC) : Nil
humanize_bytes(precision : Int = 3, separator = '.', *, significant : Bool = true, unit_separator = nil, format : BinaryPrefixFormat = :IEC) : String humanize_bytes, integer? : Bool integer?, lcm(other : BigInt) : BigInt
lcm(other : Int) lcm, microsecond : Time::Span microsecond, microseconds : Time::Span microseconds, millisecond : Time::Span millisecond, milliseconds : Time::Span milliseconds, minute : Time::Span minute, minutes : Time::Span minutes, modulo(other) modulo, month : Time::MonthSpan month, months : Time::MonthSpan months, nanosecond : Time::Span nanosecond, nanoseconds : Time::Span nanoseconds, odd? : Bool odd?, popcount popcount, pred : self pred, remainder(other : Int) remainder, round(mode : RoundingMode) : self round, round_away round_away, round_even : self round_even, second : Time::Span second, seconds : Time::Span seconds, succ : self succ, tdiv(other : Int) tdiv, tdivmod(other : Int) tdivmod, times(&block : self -> ) : Nil
times times, to(to, &block : self -> ) : Nil
to(to) to, to_big_d : BigDecimal to_big_d, to_big_i : BigInt to_big_i, to_big_r : BigRational to_big_r, to_io(io : IO, format : IO::ByteFormat) : Nil to_io, to_json(json : JSON::Builder) : Nil to_json, to_json_object_key : String to_json_object_key, to_s(io : IO, base : Int = 10, *, precision : Int = 1, upcase : Bool = false) : Nil
to_s(base : Int = 10, *, precision : Int = 1, upcase : Bool = false) : String to_s, trailing_zeros_count trailing_zeros_count, trunc : self trunc, upto(to, &block : self -> ) : Nil
upto(to) upto, week : Time::Span week, weeks : Time::Span weeks, year : Time::MonthSpan year, years : Time::MonthSpan years

### Constructor methods inherited from struct `Int`

from_io(io : IO, format : IO::ByteFormat) : self from_io

### Instance methods inherited from module `Comparable(BigDecimal)`

<(other : T) : Bool <, <=(other : T) <=, <=>(other : T) <=>, ==(other : T) ==, >(other : T) : Bool >, >=(other : T) >=, clamp(min, max)
clamp(range : Range) clamp

### Instance methods inherited from module `Comparable(BigRational)`

<(other : T) : Bool <, <=(other : T) <=, <=>(other : T) <=>, ==(other : T) ==, >(other : T) : Bool >, >=(other : T) >=, clamp(min, max)
clamp(range : Range) clamp

### Instance methods inherited from module `Comparable(BigInt)`

<(other : T) : Bool <, <=(other : T) <=, <=>(other : T) <=>, ==(other : T) ==, >(other : T) : Bool >, >=(other : T) >=, clamp(min, max)
clamp(range : Range) clamp

### Instance methods inherited from struct `Number`

*(other : BigFloat) : BigFloat
*(other : Complex) : Complex *, +(other : BigFloat)
+(other : Complex) : Complex
+ +, -(other : BigFloat)
-(other : Complex) : Complex -, /(other : BigFloat) : BigFloat
/(other : Complex) : Complex /, //(other) //, <=>(other) : Int32 | Nil <=>, ==(other : Complex) ==, abs : self abs, abs2 abs2, cis : Complex cis, divmod(number) divmod, format(io : IO, separator = '.', delimiter = ',', decimal_places : Int | Nil = nil, *, group : Int = 3, only_significant : Bool = false) : Nil
format(separator = '.', delimiter = ',', decimal_places : Int | Nil = nil, *, group : Int = 3, only_significant : Bool = false) : String format, hash(hasher) hash, humanize(io : IO, precision = 3, separator = '.', delimiter = ',', *, base = 10 ** 3, significant = true, unit_separator = nil, prefixes : Indexable = SI_PREFIXES) : Nil
humanize(io : IO, precision = 3, separator = '.', delimiter = ',', *, base = 10 ** 3, significant = true, unit_separator = nil, prefixes : Proc) : Nil
humanize(precision = 3, separator = '.', delimiter = ',', *, base = 10 ** 3, significant = true, unit_separator = nil, prefixes = SI_PREFIXES) : String
humanize(io : IO, precision = 3, separator = '.', delimiter = ',', *, base = 10 ** 3, significant = true, unit_separator = nil, &prefixes : Int32, Float64 -> Tuple(Int32, _) | Tuple(Int32, _, Bool)) : Nil
humanize(precision = 3, separator = '.', delimiter = ',', *, base = 10 ** 3, significant = true, unit_separator = nil, &) : String
humanize(precision = 3, separator = '.', delimiter = ',', *, base = 10 ** 3, significant = true, unit_separator = nil, prefixes : Proc) : String humanize, i : Complex i, integer? : Bool integer?, negative? : Bool negative?, positive? : Bool positive?, round(mode : RoundingMode = :ties_even) : self
round(digits : Number, base = 10, *, mode : RoundingMode = :ties_even) round, sign : Int32 sign, significant(digits, base = 10) significant, step(*, to limit = nil, exclusive : Bool = false, &) : Nil
step(*, to limit = nil, exclusive : Bool = false) step, to_big_f : BigFloat to_big_f, to_c : Complex to_c, to_yaml(yaml : YAML::Nodes::Builder) : Nil to_yaml, zero? : Bool zero?

### Constructor methods inherited from struct `Number`

additive_identity : self additive_identity, multiplicative_identity : self multiplicative_identity, zero : self zero

### Class methods inherited from struct `Number`

si_prefix(magnitude : Int, prefixes = SI_PREFIXES) : Char | Nil si_prefix

### Macros inherited from struct `Number`

[](*nums) [], slice(*nums, read_only = false) slice, static_array(*nums) static_array

### Instance methods inherited from module `Comparable(BigFloat)`

<(other : T) : Bool <, <=(other : T) <=, <=>(other : T) <=>, ==(other : T) ==, >(other : T) : Bool >, >=(other : T) >=, clamp(min, max)
clamp(range : Range) clamp

### Instance methods inherited from module `Steppable`

step(*, to limit = nil, by step, exclusive : Bool = false, &) : Nil
step(*, to limit = nil, by step, exclusive : Bool = false) step

### Instance methods inherited from module `Comparable(Number)`

<(other : T) : Bool <, <=(other : T) <=, <=>(other : T) <=>, ==(other : T) ==, >(other : T) : Bool >, >=(other : T) >=, clamp(min, max)
clamp(range : Range) clamp

### Instance methods inherited from struct `Value`

==(other : Log::Metadata::Value)
==(other : JSON::Any)
==(other : YAML::Any)
==(other) ==, dup dup

### Instance methods inherited from class `Object`

! : Bool !, !=(other) !=, !~(other) !~, ==(other) ==, ===(other : JSON::Any)
===(other : YAML::Any)
===(other) ===, =~(other) =~, as(type : Class) as, as?(type : Class) as?, class class, dup dup, hash(hasher)
hash hash, in?(collection : Object) : Bool
in?(*values : Object) : Bool in?, inspect(io : IO) : Nil
inspect : String inspect, is_a?(type : Class) : Bool is_a?, itself itself, nil? : Bool nil?, not_nil!(message)
not_nil! not_nil!, pretty_inspect(width = 79, newline = "\n", indent = 0) : String pretty_inspect, pretty_print(pp : PrettyPrint) : Nil pretty_print, responds_to?(name : Symbol) : Bool responds_to?, tap(&) tap, to_json(io : IO) : Nil
to_json : String to_json, to_pretty_json(indent : String = " ") : String
to_pretty_json(io : IO, indent : String = " ") : Nil to_pretty_json, to_s(io : IO) : Nil
to_s : String to_s, to_yaml(io : IO) : Nil
to_yaml : String to_yaml, try(&) try, unsafe_as(type : T.class) forall T unsafe_as

### Class methods inherited from class `Object`

from_json(string_or_io : String | IO, root : String)
from_json(string_or_io : String | IO) from_json, from_yaml(string_or_io : String | IO) from_yaml

### Macros inherited from class `Object`

class_getter(*names, &block) class_getter, class_getter!(*names) class_getter!, class_getter?(*names, &block) class_getter?, class_property(*names, &block) class_property, class_property!(*names) class_property!, class_property?(*names, &block) class_property?, class_setter(*names) class_setter, def_clone def_clone, def_equals(*fields) def_equals, def_equals_and_hash(*fields) def_equals_and_hash, def_hash(*fields) def_hash, delegate(*methods, to object) delegate, forward_missing_to(delegate) forward_missing_to, getter(*names, &block) getter, getter!(*names) getter!, getter?(*names, &block) getter?, property(*names, &block) property, property!(*names) property!, property?(*names, &block) property?, setter(*names) setter

##
Constructor Detail

def self.from_digits(digits : Enumerable(Int), base : Int = 10) : self #

Returns a number for given digits and base. The digits are expected as an `Enumerable` with the least significant digit as the first element.

Base must not be less than 2.

All digits must be within 0...base.

    UInt128.from_digits([5, 4, 3, 2, 1])          # => 12345
    UInt128.from_digits([4, 6, 6, 0, 5], base: 7) # => 12345
    UInt128.from_digits([45, 23, 1], base: 100)   # => 12345

    UInt128.from_digits([1], base: -2) # raises ArgumentError
    UInt128.from_digits([-1])          # raises ArgumentError
    UInt128.from_digits([3], base: 2)  # raises ArgumentError

def self.new(value : String, base : Int = 10, whitespace : Bool = true, underscore : Bool = false, prefix : Bool = false, strict : Bool = true, leading_zero_is_octal : Bool = false) : self #

Returns an `UInt128` by invoking `#to_u128` on value. See `String#to_i` for more details.

    UInt128.new "20"                        # => 20
    UInt128.new "  20  ", whitespace: false # raises ArgumentError: Invalid UInt128: "  20  "

def self.new(ctx : YAML::ParseContext, node : YAML::Nodes::Node) #
def self.new(pull : JSON::PullParser) #
def self.new(value) : self #

Returns an `UInt128` by invoking `#to_u128` on value.

def self.new!(value) : self #

Returns an `UInt128` by invoking `#to_u128!` on value.

##
Class Method Detail

def self.from_json_object_key?(key : String) #

##
Instance Method Detail

def !=(other : Int8) : Bool #

Returns `true` if `self` is not equal to other.

def !=(other : Int16) : Bool #

Returns `true` if `self` is not equal to other.

def !=(other : Int32) : Bool #

Returns `true` if `self` is not equal to other.

def !=(other : Int64) : Bool #

Returns `true` if `self` is not equal to other.

def !=(other : Int128) : Bool #

Returns `true` if `self` is not equal to other.

def !=(other : UInt8) : Bool #

Returns `true` if `self` is not equal to other.

def !=(other : UInt16) : Bool #

Returns `true` if `self` is not equal to other.

def !=(other : UInt32) : Bool #

Returns `true` if `self` is not equal to other.

def !=(other : UInt64) : Bool #

Returns `true` if `self` is not equal to other.

def !=(other : UInt128) : Bool #

Returns `true` if `self` is not equal to other.

def !=(other : Float32) : Bool #

Returns `true` if `self` is not equal to other or if `self` and other are unordered.

def !=(other : Float64) : Bool #

Returns `true` if `self` is not equal to other or if `self` and other are unordered.

def &(other : Int8) : self #

Returns the result of performing a bitwise AND of `self`'s and other's bits.

def &(other : Int16) : self #

Returns the result of performing a bitwise AND of `self`'s and other's bits.

def &(other : Int32) : self #

Returns the result of performing a bitwise AND of `self`'s and other's bits.

def &(other : Int64) : self #

Returns the result of performing a bitwise AND of `self`'s and other's bits.

def &(other : Int128) : self #

Returns the result of performing a bitwise AND of `self`'s and other's bits.

def &(other : UInt8) : self #

Returns the result of performing a bitwise AND of `self`'s and other's bits.

def &(other : UInt16) : self #

Returns the result of performing a bitwise AND of `self`'s and other's bits.

def &(other : UInt32) : self #

Returns the result of performing a bitwise AND of `self`'s and other's bits.

def &(other : UInt64) : self #

Returns the result of performing a bitwise AND of `self`'s and other's bits.

def &(other : UInt128) : self #

Returns the result of performing a bitwise AND of `self`'s and other's bits.

def &*(other : Int8) : self #

Returns the result of multiplying `self` and other. In case of overflow a wrapping is performed.

def &*(other : Int16) : self #

Returns the result of multiplying `self` and other. In case of overflow a wrapping is performed.

def &*(other : Int32) : self #

Returns the result of multiplying `self` and other. In case of overflow a wrapping is performed.

def &*(other : Int64) : self #

Returns the result of multiplying `self` and other. In case of overflow a wrapping is performed.

def &*(other : Int128) : self #

Returns the result of multiplying `self` and other. In case of overflow a wrapping is performed.

def &*(other : UInt8) : self #

Returns the result of multiplying `self` and other. In case of overflow a wrapping is performed.

def &*(other : UInt16) : self #

Returns the result of multiplying `self` and other. In case of overflow a wrapping is performed.

def &*(other : UInt32) : self #

Returns the result of multiplying `self` and other. In case of overflow a wrapping is performed.

def &*(other : UInt64) : self #

Returns the result of multiplying `self` and other. In case of overflow a wrapping is performed.

def &*(other : UInt128) : self #

Returns the result of multiplying `self` and other. In case of overflow a wrapping is performed.

def &+(other : Int8) : self #

Returns the result of adding `self` and other. In case of overflow a wrapping is performed.

def &+(other : Int16) : self #

Returns the result of adding `self` and other. In case of overflow a wrapping is performed.

def &+(other : Int32) : self #

Returns the result of adding `self` and other. In case of overflow a wrapping is performed.

def &+(other : Int64) : self #

Returns the result of adding `self` and other. In case of overflow a wrapping is performed.

def &+(other : Int128) : self #

Returns the result of adding `self` and other. In case of overflow a wrapping is performed.

def &+(other : UInt8) : self #

Returns the result of adding `self` and other. In case of overflow a wrapping is performed.

def &+(other : UInt16) : self #

Returns the result of adding `self` and other. In case of overflow a wrapping is performed.

def &+(other : UInt32) : self #

Returns the result of adding `self` and other. In case of overflow a wrapping is performed.

def &+(other : UInt64) : self #

Returns the result of adding `self` and other. In case of overflow a wrapping is performed.

def &+(other : UInt128) : self #

Returns the result of adding `self` and other. In case of overflow a wrapping is performed.

def &-(other : Int8) : self #

Returns the result of subtracting `self` and other. In case of overflow a wrapping is performed.

def &-(other : Int16) : self #

Returns the result of subtracting `self` and other. In case of overflow a wrapping is performed.

def &-(other : Int32) : self #

Returns the result of subtracting `self` and other. In case of overflow a wrapping is performed.

def &-(other : Int64) : self #

Returns the result of subtracting `self` and other. In case of overflow a wrapping is performed.

def &-(other : Int128) : self #

Returns the result of subtracting `self` and other. In case of overflow a wrapping is performed.

def &-(other : UInt8) : self #

Returns the result of subtracting `self` and other. In case of overflow a wrapping is performed.

def &-(other : UInt16) : self #

Returns the result of subtracting `self` and other. In case of overflow a wrapping is performed.

def &-(other : UInt32) : self #

Returns the result of subtracting `self` and other. In case of overflow a wrapping is performed.

def &-(other : UInt64) : self #

Returns the result of subtracting `self` and other. In case of overflow a wrapping is performed.

def &-(other : UInt128) : self #

Returns the result of subtracting `self` and other. In case of overflow a wrapping is performed.

def &- #
def *(other : Int8) : self #

Returns the result of multiplying `self` and other. Raises `OverflowError` in case of overflow.

def *(other : Int16) : self #

Returns the result of multiplying `self` and other. Raises `OverflowError` in case of overflow.

def *(other : Int32) : self #

Returns the result of multiplying `self` and other. Raises `OverflowError` in case of overflow.

def *(other : Int64) : self #

Returns the result of multiplying `self` and other. Raises `OverflowError` in case of overflow.

def *(other : Int128) : self #

Returns the result of multiplying `self` and other. Raises `OverflowError` in case of overflow.

def *(other : UInt8) : self #

Returns the result of multiplying `self` and other. Raises `OverflowError` in case of overflow.

def *(other : UInt16) : self #

Returns the result of multiplying `self` and other. Raises `OverflowError` in case of overflow.

def *(other : UInt32) : self #

Returns the result of multiplying `self` and other. Raises `OverflowError` in case of overflow.

def *(other : UInt64) : self #

Returns the result of multiplying `self` and other. Raises `OverflowError` in case of overflow.

def *(other : UInt128) : self #

Returns the result of multiplying `self` and other. Raises `OverflowError` in case of overflow.

def *(other : Float32) : Float32 #

Returns the result of multiplying `self` and other.

def *(other : Float64) : Float64 #

Returns the result of multiplying `self` and other.

def +(other : Int8) : self #

Returns the result of adding `self` and other. Raises `OverflowError` in case of overflow.

def +(other : Int16) : self #

Returns the result of adding `self` and other. Raises `OverflowError` in case of overflow.

def +(other : Int32) : self #

Returns the result of adding `self` and other. Raises `OverflowError` in case of overflow.

def +(other : Int64) : self #

Returns the result of adding `self` and other. Raises `OverflowError` in case of overflow.

def +(other : Int128) : self #

Returns the result of adding `self` and other. Raises `OverflowError` in case of overflow.

def +(other : UInt8) : self #

Returns the result of adding `self` and other. Raises `OverflowError` in case of overflow.

def +(other : UInt16) : self #

Returns the result of adding `self` and other. Raises `OverflowError` in case of overflow.

def +(other : UInt32) : self #

Returns the result of adding `self` and other. Raises `OverflowError` in case of overflow.

def +(other : UInt64) : self #

Returns the result of adding `self` and other. Raises `OverflowError` in case of overflow.

def +(other : UInt128) : self #

Returns the result of adding `self` and other. Raises `OverflowError` in case of overflow.

def +(other : Float32) : Float32 #

Returns the result of adding `self` and other.

def +(other : Float64) : Float64 #

Returns the result of adding `self` and other.

def -(other : Int8) : self #

Returns the result of subtracting `self` and other. Raises `OverflowError` in case of overflow.

def -(other : Int16) : self #

Returns the result of subtracting `self` and other. Raises `OverflowError` in case of overflow.

def -(other : Int32) : self #

Returns the result of subtracting `self` and other. Raises `OverflowError` in case of overflow.

def -(other : Int64) : self #

Returns the result of subtracting `self` and other. Raises `OverflowError` in case of overflow.

def -(other : Int128) : self #

Returns the result of subtracting `self` and other. Raises `OverflowError` in case of overflow.

def -(other : UInt8) : self #

Returns the result of subtracting `self` and other. Raises `OverflowError` in case of overflow.

def -(other : UInt16) : self #

Returns the result of subtracting `self` and other. Raises `OverflowError` in case of overflow.

def -(other : UInt32) : self #

Returns the result of subtracting `self` and other. Raises `OverflowError` in case of overflow.

def -(other : UInt64) : self #

Returns the result of subtracting `self` and other. Raises `OverflowError` in case of overflow.

def -(other : UInt128) : self #

Returns the result of subtracting `self` and other. Raises `OverflowError` in case of overflow.

def -(other : Float32) : Float32 #

Returns the result of subtracting `self` and other.

def -(other : Float64) : Float64 #

Returns the result of subtracting `self` and other.

def /(other : Int8) : Float64 #
def /(other : UInt8) : Float64 #
def /(other : Int16) : Float64 #
def /(other : UInt16) : Float64 #
def /(other : Int32) : Float64 #
def /(other : UInt32) : Float64 #
def /(other : Int64) : Float64 #
def /(other : UInt64) : Float64 #
def /(other : Int128) : Float64 #
def /(other : UInt128) : Float64 #
def /(other : Float32) : Float32 #
def /(other : Float64) : Float64 #
def /(other : BigInt) : BigFloat #
def /(other : BigDecimal) : BigDecimal #
def /(other : BigRational) : BigRational #
def <(other : Int8) : Bool #

Returns `true` if `self` is less than other.

def <(other : Int16) : Bool #

Returns `true` if `self` is less than other.

def <(other : Int32) : Bool #

Returns `true` if `self` is less than other.

def <(other : Int64) : Bool #

Returns `true` if `self` is less than other.

def <(other : Int128) : Bool #

Returns `true` if `self` is less than other.

def <(other : UInt8) : Bool #

Returns `true` if `self` is less than other.

def <(other : UInt16) : Bool #

Returns `true` if `self` is less than other.

def <(other : UInt32) : Bool #

Returns `true` if `self` is less than other.

def <(other : UInt64) : Bool #

Returns `true` if `self` is less than other.

def <(other : UInt128) : Bool #

Returns `true` if `self` is less than other.

def <(other : Float32) : Bool #

Returns `true` if `self` is less than other.

def <(other : Float64) : Bool #

Returns `true` if `self` is less than other.

def <=(other : Int8) : Bool #

Returns `true` if `self` is less than or equal to other.

def <=(other : Int16) : Bool #

Returns `true` if `self` is less than or equal to other.

def <=(other : Int32) : Bool #

Returns `true` if `self` is less than or equal to other.

def <=(other : Int64) : Bool #

Returns `true` if `self` is less than or equal to other.

def <=(other : Int128) : Bool #

Returns `true` if `self` is less than or equal to other.

def <=(other : UInt8) : Bool #

Returns `true` if `self` is less than or equal to other.

def <=(other : UInt16) : Bool #

Returns `true` if `self` is less than or equal to other.

def <=(other : UInt32) : Bool #

Returns `true` if `self` is less than or equal to other.

def <=(other : UInt64) : Bool #

Returns `true` if `self` is less than or equal to other.

def <=(other : UInt128) : Bool #

Returns `true` if `self` is less than or equal to other.

def <=(other : Float32) : Bool #

Returns `true` if `self` is less than or equal to other.

def <=(other : Float64) : Bool #

Returns `true` if `self` is less than or equal to other.

def ==(other : Int8) : Bool #

Returns `true` if `self` is equal to other.

def ==(other : Int16) : Bool #

Returns `true` if `self` is equal to other.

def ==(other : Int32) : Bool #

Returns `true` if `self` is equal to other.

def ==(other : Int64) : Bool #

Returns `true` if `self` is equal to other.

def ==(other : Int128) : Bool #

Returns `true` if `self` is equal to other.

def ==(other : UInt8) : Bool #

Returns `true` if `self` is equal to other.

def ==(other : UInt16) : Bool #

Returns `true` if `self` is equal to other.

def ==(other : UInt32) : Bool #

Returns `true` if `self` is equal to other.

def ==(other : UInt64) : Bool #

Returns `true` if `self` is equal to other.

def ==(other : UInt128) : Bool #

Returns `true` if `self` is equal to other.

def ==(other : Float32) : Bool #

Returns `true` if `self` is equal to other.

def ==(other : Float64) : Bool #

Returns `true` if `self` is equal to other.

def >(other : Int8) : Bool #

Returns `true` if `self` is greater than other.

def >(other : Int16) : Bool #

Returns `true` if `self` is greater than other.

def >(other : Int32) : Bool #

Returns `true` if `self` is greater than other.

def >(other : Int64) : Bool #

Returns `true` if `self` is greater than other.

def >(other : Int128) : Bool #

Returns `true` if `self` is greater than other.

def >(other : UInt8) : Bool #

Returns `true` if `self` is greater than other.

def >(other : UInt16) : Bool #

Returns `true` if `self` is greater than other.

def >(other : UInt32) : Bool #

Returns `true` if `self` is greater than other.

def >(other : UInt64) : Bool #

Returns `true` if `self` is greater than other.

def >(other : UInt128) : Bool #

Returns `true` if `self` is greater than other.

def >(other : Float32) : Bool #

Returns `true` if `self` is greater than other.

def >(other : Float64) : Bool #

Returns `true` if `self` is greater than other.

def >=(other : Int8) : Bool #

Returns `true` if `self` is greater than or equal to other.

def >=(other : Int16) : Bool #

Returns `true` if `self` is greater than or equal to other.

def >=(other : Int32) : Bool #

Returns `true` if `self` is greater than or equal to other.

def >=(other : Int64) : Bool #

Returns `true` if `self` is greater than or equal to other.

def >=(other : Int128) : Bool #

Returns `true` if `self` is greater than or equal to other.

def >=(other : UInt8) : Bool #

Returns `true` if `self` is greater than or equal to other.

def >=(other : UInt16) : Bool #

Returns `true` if `self` is greater than or equal to other.

def >=(other : UInt32) : Bool #

Returns `true` if `self` is greater than or equal to other.

def >=(other : UInt64) : Bool #

Returns `true` if `self` is greater than or equal to other.

def >=(other : UInt128) : Bool #

Returns `true` if `self` is greater than or equal to other.

def >=(other : Float32) : Bool #

Returns `true` if `self` is greater than or equal to other.

def >=(other : Float64) : Bool #

Returns `true` if `self` is greater than or equal to other.

def ^(other : Int8) : self #

Returns the result of performing a bitwise XOR of `self`'s and other's bits.

def ^(other : Int16) : self #

Returns the result of performing a bitwise XOR of `self`'s and other's bits.

def ^(other : Int32) : self #

Returns the result of performing a bitwise XOR of `self`'s and other's bits.

def ^(other : Int64) : self #

Returns the result of performing a bitwise XOR of `self`'s and other's bits.

def ^(other : Int128) : self #

Returns the result of performing a bitwise XOR of `self`'s and other's bits.

def ^(other : UInt8) : self #

Returns the result of performing a bitwise XOR of `self`'s and other's bits.

def ^(other : UInt16) : self #

Returns the result of performing a bitwise XOR of `self`'s and other's bits.

def ^(other : UInt32) : self #

Returns the result of performing a bitwise XOR of `self`'s and other's bits.

def ^(other : UInt64) : self #

Returns the result of performing a bitwise XOR of `self`'s and other's bits.

def ^(other : UInt128) : self #

Returns the result of performing a bitwise XOR of `self`'s and other's bits.

def |(other : Int8) : self #

Returns the result of performing a bitwise OR of `self`'s and other's bits.

def |(other : Int16) : self #

Returns the result of performing a bitwise OR of `self`'s and other's bits.

def |(other : Int32) : self #

Returns the result of performing a bitwise OR of `self`'s and other's bits.

def |(other : Int64) : self #

Returns the result of performing a bitwise OR of `self`'s and other's bits.

def |(other : Int128) : self #

Returns the result of performing a bitwise OR of `self`'s and other's bits.

def |(other : UInt8) : self #

Returns the result of performing a bitwise OR of `self`'s and other's bits.

def |(other : UInt16) : self #

Returns the result of performing a bitwise OR of `self`'s and other's bits.

def |(other : UInt32) : self #

Returns the result of performing a bitwise OR of `self`'s and other's bits.

def |(other : UInt64) : self #

Returns the result of performing a bitwise OR of `self`'s and other's bits.

def |(other : UInt128) : self #

Returns the result of performing a bitwise OR of `self`'s and other's bits.

def abs #
Description copied from struct Int

Returns the absolute value of this number.

    123.abs  # => 123
    -123.abs # => 123

def abs_unsigned : self #

Returns the absolute value of `self` as an unsigned value of the same size.

Returns `self` if `self` is already an `Int::Unsigned`. This method never overflows.

    1_u32.abs_unsigned      # => 1_u32
    2_i32.abs_unsigned      # => 2_u32
    -3_i8.abs_unsigned      # => 3_u8
    Int16::MIN.abs_unsigned # => 32768_u16

def bit_reverse : self #

Reverses the bits of `self`; the least significant bit becomes the most significant, and vice-versa.

    0b01001011_u8.bit_reverse          # => 0b11010010
    0b1100100001100111_u16.bit_reverse # => 0b1110011000010011

def byte_swap : self #

Swaps the bytes of `self`; a little-endian value becomes a big-endian value, and vice-versa. The bit order within each byte is unchanged.

Has no effect on 8-bit integers.

    0x123456789ABCDEF013579BDF2468ACE0_u128.byte_swap # ＝> 0xE0AC6824DF9B5713F0DEBC9A78563412

def clone #
def leading_zeros_count #

Returns the number of leading `0`-bits.

def neg_signed : Int128 #

Returns the negative of `self` as a signed value of the same size.

Returns `-self` if `self` is already an `Int::Signed`. Raises `OverflowError` in case of overflow.

    1_i32.neg_signed      # => -1_i32
    2_u16.neg_signed      # => -2_i16
    128_u8.neg_signed     # => -128_i8
    Int16::MIN.neg_signed # raises OverflowError

def popcount #
Description copied from struct Int

Counts `1`-bits in the binary representation of this integer.

    5.popcount   # => 2
    -15.popcount # => 29

def rotate_left(n : Int) : self #

Returns the bitwise rotation of `self` n times in the most significant bit's direction. Negative shifts are equivalent to `#rotate_right(-n)`.

    0b01001101_u8.rotate_left(3)  # => 0b01101010
    0b01001101_u8.rotate_left(8)  # => 0b01001101
    0b01001101_u8.rotate_left(11) # => 0b01101010
    0b01001101_u8.rotate_left(-1) # => 0b10100110

def rotate_right(n : Int) : self #

Returns the bitwise rotation of `self` n times in the least significant bit's direction. Negative shifts are equivalent to `#rotate_left(-n)`.

    0b01001101_u8.rotate_right(3)  # => 0b10101001
    0b01001101_u8.rotate_right(8)  # => 0b01001101
    0b01001101_u8.rotate_right(11) # => 0b10101001
    0b01001101_u8.rotate_right(-1) # => 0b10011010

def to_f : Float64 #

Returns `self` converted to `Float64`. Raises `OverflowError` in case of overflow.

def to_f! : Float64 #

Returns `self` converted to `Float64`. In case of overflow a wrapping is performed.

def to_f32 : Float32 #

Returns `self` converted to `Float32`. Raises `OverflowError` in case of overflow.

def to_f32! : Float32 #

Returns `self` converted to `Float32`. In case of overflow a wrapping is performed.

def to_f64 : Float64 #

Returns `self` converted to `Float64`. Raises `OverflowError` in case of overflow.

def to_f64! : Float64 #

Returns `self` converted to `Float64`. In case of overflow a wrapping is performed.

def to_i : Int32 #

Returns `self` converted to `Int32`. Raises `OverflowError` in case of overflow.

def to_i! : Int32 #

Returns `self` converted to `Int32`. In case of overflow a wrapping is performed.

def to_i128 : Int128 #

Returns `self` converted to `Int128`. Raises `OverflowError` in case of overflow.

def to_i128! : Int128 #

Returns `self` converted to `Int128`. In case of overflow a wrapping is performed.

def to_i16 : Int16 #

Returns `self` converted to `Int16`. Raises `OverflowError` in case of overflow.

def to_i16! : Int16 #

Returns `self` converted to `Int16`. In case of overflow a wrapping is performed.

def to_i32 : Int32 #

Returns `self` converted to `Int32`. Raises `OverflowError` in case of overflow.

def to_i32! : Int32 #

Returns `self` converted to `Int32`. In case of overflow a wrapping is performed.

def to_i64 : Int64 #

Returns `self` converted to `Int64`. Raises `OverflowError` in case of overflow.

def to_i64! : Int64 #

Returns `self` converted to `Int64`. In case of overflow a wrapping is performed.

def to_i8 : Int8 #

Returns `self` converted to `Int8`. Raises `OverflowError` in case of overflow.

def to_i8! : Int8 #

Returns `self` converted to `Int8`. In case of overflow a wrapping is performed.

def to_signed : Int128 #

Returns `self` converted to a signed value of the same size.

Simply returns `self` unmodified if `self` is already an `Int::Signed`. Raises `OverflowError` in case of overflow.

    1_u32.to_signed # => 1_i32
    2_u16.to_signed # => 2_i16
    3_i64.to_signed # => 3_i64

def to_signed! : Int128 #

Returns `self` converted to a signed value of the same size, wrapping in case of overflow.

Simply returns `self` unmodified if `self` is already an `Int::Signed`.

    1_u32.to_signed!     # => 1_i32
    65530_u16.to_signed! # => -6_i16
    3_i64.to_signed!     # => 3_i64

def to_u : UInt32 #

Returns `self` converted to `UInt32`. Raises `OverflowError` in case of overflow.

def to_u! : UInt32 #

Returns `self` converted to `UInt32`. In case of overflow a wrapping is performed.

def to_u128 : UInt128 #

Returns `self` converted to `UInt128`. Raises `OverflowError` in case of overflow.

def to_u128! : UInt128 #

Returns `self` converted to `UInt128`. In case of overflow a wrapping is performed.

def to_u16 : UInt16 #

Returns `self` converted to `UInt16`. Raises `OverflowError` in case of overflow.

def to_u16! : UInt16 #

Returns `self` converted to `UInt16`. In case of overflow a wrapping is performed.

def to_u32 : UInt32 #

Returns `self` converted to `UInt32`. Raises `OverflowError` in case of overflow.

def to_u32! : UInt32 #

Returns `self` converted to `UInt32`. In case of overflow a wrapping is performed.

def to_u64 : UInt64 #

Returns `self` converted to `UInt64`. Raises `OverflowError` in case of overflow.

def to_u64! : UInt64 #

Returns `self` converted to `UInt64`. In case of overflow a wrapping is performed.

def to_u8 : UInt8 #

Returns `self` converted to `UInt8`. Raises `OverflowError` in case of overflow.

def to_u8! : UInt8 #

Returns `self` converted to `UInt8`. In case of overflow a wrapping is performed.

def to_unsigned : UInt128 #

Returns `self` converted to an unsigned value of the same size.

Simply returns `self` unmodified if `self` is already an `Int::Unsigned`. Raises `OverflowError` in case of overflow.

    1_i32.to_unsigned # => 1_u32
    2_i16.to_unsigned # => 2_u16
    3_u64.to_unsigned # => 3_u64

def to_unsigned! : UInt128 #

Returns `self` converted to an unsigned value of the same size, wrapping in case of overflow.

Simply returns `self` unmodified if `self` is already an `Int::Unsigned`.

    1_i32.to_unsigned!    # => 1_u32
    (-6_i16).to_unsigned! # => 65530_u16
    3_u64.to_unsigned!    # => 3_u64

def trailing_zeros_count #
Description copied from struct Int

Returns the number of trailing `0`-bits.

def unsafe_chr : Char #

Returns a `Char` that has the unicode codepoint of `self`, without checking if this integer is in the range valid for chars (`0..0xd7ff` and `0xe000..0x10ffff`). In case of overflow a wrapping is performed.

You should never use this method unless `chr` turns out to be a bottleneck.

    97.unsafe_chr # => 'a'