Returns the remainder of the division of this value by x
.
Returns the remainder of the division of this value by x
.
Returns the remainder of the division of this value by x
.
Returns the remainder of the division of this value by x
.
Returns the remainder of the division of this value by x
.
Returns the remainder of the division of this value by x
.
Returns the remainder of the division of this value by x
.
Returns the bitwise AND of this value and x
.
Returns the bitwise AND of this value and x
.
(0xf0 & 0xaa) == 0xa0 // in binary: 11110000 // & 10101010 // -------- // 10100000
Returns the bitwise AND of this value and x
.
Returns the bitwise AND of this value and x
.
(0xf0 & 0xaa) == 0xa0 // in binary: 11110000 // & 10101010 // -------- // 10100000
Returns the bitwise AND of this value and x
.
Returns the bitwise AND of this value and x
.
(0xf0 & 0xaa) == 0xa0 // in binary: 11110000 // & 10101010 // -------- // 10100000
Returns the bitwise AND of this value and x
.
Returns the bitwise AND of this value and x
.
(0xf0 & 0xaa) == 0xa0 // in binary: 11110000 // & 10101010 // -------- // 10100000
Returns the bitwise AND of this value and x
.
Returns the bitwise AND of this value and x
.
(0xf0 & 0xaa) == 0xa0 // in binary: 11110000 // & 10101010 // -------- // 10100000
Returns the product of this value and x
.
Returns the product of this value and x
.
Returns the product of this value and x
.
Returns the product of this value and x
.
Returns the product of this value and x
.
Returns the product of this value and x
.
Returns the product of this value and x
.
Returns the sum of this value and x
.
Returns the sum of this value and x
.
Returns the sum of this value and x
.
Returns the sum of this value and x
.
Returns the sum of this value and x
.
Returns the sum of this value and x
.
Returns the sum of this value and x
.
Converts this PosInt
's value to a string then concatenates the given string.
Converts this PosInt
's value to a string then concatenates the given string.
Returns the difference of this value and x
.
Returns the difference of this value and x
.
Returns the difference of this value and x
.
Returns the difference of this value and x
.
Returns the difference of this value and x
.
Returns the difference of this value and x
.
Returns the difference of this value and x
.
Returns the quotient of this value and x
.
Returns the quotient of this value and x
.
Returns the quotient of this value and x
.
Returns the quotient of this value and x
.
Returns the quotient of this value and x
.
Returns the quotient of this value and x
.
Returns the quotient of this value and x
.
Returns true
if this value is less than x, false
otherwise.
Returns true
if this value is less than x, false
otherwise.
Returns true
if this value is less than x, false
otherwise.
Returns true
if this value is less than x, false
otherwise.
Returns true
if this value is less than x, false
otherwise.
Returns true
if this value is less than x, false
otherwise.
Returns true
if this value is less than x, false
otherwise.
Returns this value bit-shifted left by the specified number of bits, filling in the new right bits with zeroes.
Returns this value bit-shifted left by the specified number of bits, filling in the new right bits with zeroes.
6 << 3 == 48 // in binary: 0110 << 3 == 0110000
Returns this value bit-shifted left by the specified number of bits, filling in the new right bits with zeroes.
Returns this value bit-shifted left by the specified number of bits, filling in the new right bits with zeroes.
6 << 3 == 48 // in binary: 0110 << 3 == 0110000
Returns true
if this value is less than or equal to x, false
otherwise.
Returns true
if this value is less than or equal to x, false
otherwise.
Returns true
if this value is less than or equal to x, false
otherwise.
Returns true
if this value is less than or equal to x, false
otherwise.
Returns true
if this value is less than or equal to x, false
otherwise.
Returns true
if this value is less than or equal to x, false
otherwise.
Returns true
if this value is less than or equal to x, false
otherwise.
Returns true
if this value is greater than x, false
otherwise.
Returns true
if this value is greater than x, false
otherwise.
Returns true
if this value is greater than x, false
otherwise.
Returns true
if this value is greater than x, false
otherwise.
Returns true
if this value is greater than x, false
otherwise.
Returns true
if this value is greater than x, false
otherwise.
Returns true
if this value is greater than x, false
otherwise.
Returns true
if this value is greater than or equal to x, false
otherwise.
Returns true
if this value is greater than or equal to x, false
otherwise.
Returns true
if this value is greater than or equal to x, false
otherwise.
Returns true
if this value is greater than or equal to x, false
otherwise.
Returns true
if this value is greater than or equal to x, false
otherwise.
Returns true
if this value is greater than or equal to x, false
otherwise.
Returns true
if this value is greater than or equal to x, false
otherwise.
Returns this value bit-shifted left by the specified number of bits, filling in the right bits with the same value as the left-most bit of this.
Returns this value bit-shifted left by the specified number of bits, filling in the right bits with the same value as the left-most bit of this. The effect of this is to retain the sign of the value.
-21 >> 3 == -3 // in binary: 11111111 11111111 11111111 11101011 >> 3 == // 11111111 11111111 11111111 11111101
Returns this value bit-shifted left by the specified number of bits, filling in the right bits with the same value as the left-most bit of this.
Returns this value bit-shifted left by the specified number of bits, filling in the right bits with the same value as the left-most bit of this. The effect of this is to retain the sign of the value.
-21 >> 3 == -3 // in binary: 11111111 11111111 11111111 11101011 >> 3 == // 11111111 11111111 11111111 11111101
Returns this value bit-shifted right by the specified number of bits, filling the new left bits with zeroes.
Returns this value bit-shifted right by the specified number of bits, filling the new left bits with zeroes.
-21 >>> 3 == 536870909 // in binary: 11111111 11111111 11111111 11101011 >>> 3 == // 00011111 11111111 11111111 11111101
21 >>> 3 == 2 // in binary: 010101 >>> 3 == 010
Returns this value bit-shifted right by the specified number of bits, filling the new left bits with zeroes.
Returns this value bit-shifted right by the specified number of bits, filling the new left bits with zeroes.
-21 >>> 3 == 536870909 // in binary: 11111111 11111111 11111111 11101011 >>> 3 == // 00011111 11111111 11111111 11111101
21 >>> 3 == 2 // in binary: 010101 >>> 3 == 010
Returns the bitwise XOR of this value and x
.
Returns the bitwise XOR of this value and x
.
(0xf0 ^ 0xaa) == 0x5a // in binary: 11110000 // ^ 10101010 // -------- // 01011010
Returns the bitwise XOR of this value and x
.
Returns the bitwise XOR of this value and x
.
(0xf0 ^ 0xaa) == 0x5a // in binary: 11110000 // ^ 10101010 // -------- // 01011010
Returns the bitwise XOR of this value and x
.
Returns the bitwise XOR of this value and x
.
(0xf0 ^ 0xaa) == 0x5a // in binary: 11110000 // ^ 10101010 // -------- // 01011010
Returns the bitwise XOR of this value and x
.
Returns the bitwise XOR of this value and x
.
(0xf0 ^ 0xaa) == 0x5a // in binary: 11110000 // ^ 10101010 // -------- // 01011010
Returns the bitwise XOR of this value and x
.
Returns the bitwise XOR of this value and x
.
(0xf0 ^ 0xaa) == 0x5a // in binary: 11110000 // ^ 10101010 // -------- // 01011010
Returns this
if this > that
or that
otherwise.
Returns this
if this > that
or that
otherwise.
Returns this
if this < that
or that
otherwise.
Returns this
if this < that
or that
otherwise.
Create an inclusive Range
from this PosInt
value
to the specified end
with the specified step
value.
Create an inclusive Range
from this PosInt
value
to the specified end
with the specified step
value.
The final bound of the range to make.
The number to increase by for each step of the range.
A scala.collection.immutable.Range from this
up to
and including end
.
Create an inclusive Range
from this PosInt
value
to the specified end
with step value 1.
Create an inclusive Range
from this PosInt
value
to the specified end
with step value 1.
The final bound of the range to make.
A scala.collection.immutable.Range from this
up to
and including end
.
Returns a string representation of this PosInt
's underlying Int
as an
unsigned integer in base 2.
Returns a string representation of this PosInt
's underlying Int
as an
unsigned integer in base 2.
The unsigned integer value is the argument plus 232
if this PosInt
's underlying Int
is negative; otherwise it is equal to the
underlying Int
. This value is converted to a string of ASCII digits
in binary (base 2) with no extra leading 0
s.
If the unsigned magnitude is zero, it is represented by a
single zero character '0'
('\u0030'
); otherwise, the first character of
the representation of the unsigned magnitude will not be the
zero character. The characters '0'
('\u0030'
) and '1'
('\u0031'
) are used as binary digits.
the string representation of the unsigned integer value
represented by this PosInt
's underlying Int
in binary (base 2).
Converts this PosInt
to a Byte
.
Converts this PosInt
to a Byte
.
Converts this PosInt
to a Char
.
Converts this PosInt
to a Char
.
Converts this PosInt
to a Double
.
Converts this PosInt
to a Double
.
Converts this PosInt
to a Float
.
Converts this PosInt
to a Float
.
Returns a string representation of this PosInt
's underlying Int
as an
unsigned integer in base 16.
Returns a string representation of this PosInt
's underlying Int
as an
unsigned integer in base 16.
The unsigned integer value is the argument plus 232
if this PosInt
's underlying Int
is negative; otherwise, it is equal to the
this PosInt
's underlying Int
This value is converted to a string of ASCII digits
in hexadecimal (base 16) with no extra leading
0
s. If the unsigned magnitude is zero, it is
represented by a single zero character '0'
('\u0030'
); otherwise, the first character of
the representation of the unsigned magnitude will not be the
zero character. The following characters are used as
hexadecimal digits:
0123456789abcdef
These are the characters '\u0030'
through
'\u0039'
and '\u0061'
through
'\u0066'
. If uppercase letters are
desired, the toUpperCase
method may
be called on the result.
the string representation of the unsigned integer value
represented by this PosInt
's underlying Int
in hexadecimal (base 16).
Converts this PosInt
to an Int
.
Converts this PosInt
to an Int
.
Converts this PosInt
to a Long
.
Converts this PosInt
to a Long
.
Returns a string representation of this PosInt
's underlying Int
as an
unsigned integer in base 8.
Returns a string representation of this PosInt
's underlying Int
as an
unsigned integer in base 8.
The unsigned integer value is this PosInt
's underlying Int
plus 232
if the underlying Int
is negative; otherwise, it is equal to the
underlying Int
. This value is converted to a string of ASCII digits
in octal (base 8) with no extra leading 0
s.
If the unsigned magnitude is zero, it is represented by a
single zero character '0'
('\u0030'
); otherwise, the first character of
the representation of the unsigned magnitude will not be the
zero character. The following characters are used as octal
digits:
01234567
These are the characters '\u0030'
through
'\u0037'
.
the string representation of the unsigned integer value
represented by this PosInt
's underlying Int
in octal (base 8).
Converts this PosInt
to a Short
.
Converts this PosInt
to a Short
.
A string representation of this PosInt
.
A string representation of this PosInt
.
Returns this value, unmodified.
Returns the negation of this value.
Returns the bitwise negation of this value.
Returns the bitwise negation of this value.
~5 == -6 // in binary: ~00000101 == // 11111010
Create a Range
from this PosInt
value
until the specified end
(exclusive) with the specified step
value.
Create a Range
from this PosInt
value
until the specified end
(exclusive) with the specified step
value.
The final bound of the range to make.
The number to increase by for each step of the range.
A scala.collection.immutable.Range from this
up to but
not including end
.
Create a Range
from this PosInt
value
until the specified end
(exclusive) with step value 1.
Create a Range
from this PosInt
value
until the specified end
(exclusive) with step value 1.
The final bound of the range to make.
A scala.collection.immutable.Range from this
up to but
not including end
.
The Int
value underlying this PosInt
.
The Int
value underlying this PosInt
.
Returns the bitwise OR of this value and x
.
Returns the bitwise OR of this value and x
.
(0xf0 | 0xaa) == 0xfa // in binary: 11110000 // | 10101010 // -------- // 11111010
Returns the bitwise OR of this value and x
.
Returns the bitwise OR of this value and x
.
(0xf0 | 0xaa) == 0xfa // in binary: 11110000 // | 10101010 // -------- // 11111010
Returns the bitwise OR of this value and x
.
Returns the bitwise OR of this value and x
.
(0xf0 | 0xaa) == 0xfa // in binary: 11110000 // | 10101010 // -------- // 11111010
Returns the bitwise OR of this value and x
.
Returns the bitwise OR of this value and x
.
(0xf0 | 0xaa) == 0xfa // in binary: 11110000 // | 10101010 // -------- // 11111010
Returns the bitwise OR of this value and x
.
Returns the bitwise OR of this value and x
.
(0xf0 | 0xaa) == 0xfa // in binary: 11110000 // | 10101010 // -------- // 11111010
An
AnyVal
for positiveInt
s.Note: a
PosInt
may not equal 0. If you want positive number or 0, use PosZInt.Because
PosInt
is anAnyVal
it will usually be as efficient as anInt
, being boxed only when anInt
would have been boxed.The
PosInt.apply
factory method is implemented in terms of a macro that checks literals for validity at compile time. CallingPosInt.apply
with a literalInt
value will either produce a validPosInt
instance at run time or an error at compile time. Here's an example:PosInt.apply
cannot be used if the value being passed is a variable (i.e., not a literal), because the macro cannot determine the validity of variables at compile time (just literals). If you try to pass a variable toPosInt.apply
, you'll get a compiler error that suggests you use a different factor method,PosInt.from
, instead:The
PosInt.from
factory method will inspect the value at runtime and return anOption[PosInt]
. If the value is valid,PosInt.from
will return aSome[PosInt]
, else it will return aNone
. Here's an example:The
PosInt.apply
factory method is marked implicit, so that you can pass literalInt
s into methods that requirePosInt
, and get the same compile-time checking you get when callingPosInt.apply
explicitly. Here's an example:This example also demonstrates that the
PosInt
companion object also defines implicit widening conversions when either no loss of precision will occur or a similar conversion is provided in Scala. (For example, the implicit conversion fromInt
to Float in Scala can lose precision.) This makes it convenient to use aPosInt
where anInt
or wider type is needed. An example is the subtraction in the body of theinvert
method defined above,Int.MaxValue - pos
. AlthoughInt.MaxValue
is anInt
, which has no-
method that takes aPosInt
(the type ofpos
), you can still subtractpos
, because thePosInt
will be implicitly widened toInt
.