# Native 16-bit unsigned integer.

Same as a C uint16_t

### Introduced properties

##### intern fun %(i: UInt16): UInt16

core :: UInt16 :: %

Modulo of self with i.
##### intern fun &(i: UInt16): UInt16

core :: UInt16 :: &

Returns the result of a binary AND operation on self and i
##### intern fun <<(i: Int): UInt16

core :: UInt16 :: <<

i bits shift to the left
##### intern fun >>(i: Int): UInt16

core :: UInt16 :: >>

i bits shift to the right
##### intern fun ^(i: UInt16): UInt16

core :: UInt16 :: ^

Returns the result of a binary XOR operation on self and i
##### intern fun unary ~: UInt16

core :: UInt16 :: unary ~

Returns the 1's complement of self
##### intern fun |(i: UInt16): UInt16

core :: UInt16 :: |

Returns the result of a binary OR operation on self and i

### Redefined properties

##### redef intern fun !=(i: nullable Object): Bool

core \$ UInt16 :: !=

Have self and other different values?
##### redef intern fun *(i: OTHER): OTHER

core \$ UInt16 :: *

Multiplication of self with i
##### redef intern fun +(i: OTHER): OTHER

core \$ UInt16 :: +

Addition of self with i
##### redef intern fun -(i: OTHER): OTHER

core \$ UInt16 :: -

Substraction of i from self
##### redef intern fun /(i: OTHER): OTHER

core \$ UInt16 :: /

Division of self with i
##### redef intern fun <(i: OTHER): Bool

core \$ UInt16 :: <

Is self lesser than other?
##### redef intern fun <=(i: OTHER): Bool

core \$ UInt16 :: <=

not other < self
##### redef fun <=>(other: OTHER): Int

core \$ UInt16 :: <=>

-1 if <, +1 if > and 0 otherwise
##### redef intern fun ==(i: nullable Object): Bool

core \$ UInt16 :: ==

Have self and other the same value?
##### redef intern fun >(i: OTHER): Bool

core \$ UInt16 :: >

other < self
##### redef intern fun >=(i: OTHER): Bool

core \$ UInt16 :: >=

not self < other
##### redef type OTHER: UInt16

core \$ UInt16 :: OTHER

What self can be compared to?
##### redef type SELF: UInt16

core \$ UInt16 :: SELF

Type of this instance, automatically specialized in every class
##### redef fun distance(i: OTHER): Int

core \$ UInt16 :: distance

The distance between self and d.
##### redef fun hash: Int

core \$ UInt16 :: hash

The hash code of the object.
##### redef fun is_between(c: OTHER, d: OTHER): Bool

core \$ UInt16 :: is_between

c <= self <= d
##### redef fun max(other: OTHER): OTHER

core \$ UInt16 :: max

The maximum between self and other (prefers self if equals).
##### redef fun min(c: OTHER): OTHER

core \$ UInt16 :: min

The minimum between self and c (prefer self if equals)
##### redef intern fun object_id: Int

core \$ UInt16 :: object_id

An internal hash code for the object based on its identity.
##### redef intern fun output

core \$ UInt16 :: output

Display self on stdout (debug only).
##### redef fun predecessor(i: Int): OTHER

core \$ UInt16 :: predecessor

The previous element.
##### redef fun successor(i: Int): OTHER

core \$ UInt16 :: successor

The next element.
##### redef intern fun to_b: Byte

core \$ UInt16 :: to_b

The byte equivalent of self
##### redef intern fun to_f: Float

core \$ UInt16 :: to_f

The float equivalent of self
##### redef intern fun to_i: Int

core \$ UInt16 :: to_i

The integer part of self.
##### redef intern fun to_i16: Int16

core \$ UInt16 :: to_i16

The Int16 equivalent of self
##### redef intern fun to_i32: Int32

core \$ UInt16 :: to_i32

The Int32 equivalent of self
##### redef intern fun to_i8: Int8

core \$ UInt16 :: to_i8

The Int8 equivalent of self
##### redef fun to_s: String

core :: fixed_ints_text \$ UInt16 :: to_s

Displayable UInt16
##### redef fun to_u16: UInt16

core \$ UInt16 :: to_u16

The UInt16 equivalent of self
##### redef intern fun to_u32: UInt32

core \$ UInt16 :: to_u32

The UInt32 equivalent of self
##### redef intern fun unary -: OTHER

core \$ UInt16 :: unary -

assert -1u16 == 0xFFFFu16
##### redef fun value_of(val: Numeric): OTHER

core \$ UInt16 :: value_of

The value of val in the domain of self
##### redef fun zero: OTHER

core \$ UInt16 :: zero

The value of zero in the domain of self

## All properties

##### fun !=(other: nullable Object): Bool

core :: Object :: !=

Have self and other different values?
##### intern fun %(i: UInt16): UInt16

core :: UInt16 :: %

Modulo of self with i.
##### intern fun &(i: UInt16): UInt16

core :: UInt16 :: &

Returns the result of a binary AND operation on self and i
##### abstract fun *(i: OTHER): OTHER

core :: Numeric :: *

Multiplication of self with i
##### abstract fun +(i: OTHER): OTHER

core :: Numeric :: +

Addition of self with i
##### abstract fun -(i: OTHER): OTHER

core :: Numeric :: -

Substraction of i from self
##### abstract fun /(i: OTHER): OTHER

core :: Numeric :: /

Division of self with i
##### abstract fun <(other: OTHER): Bool

core :: Comparable :: <

Is self lesser than other?
##### intern fun <<(i: Int): UInt16

core :: UInt16 :: <<

i bits shift to the left
##### fun <=(other: OTHER): Bool

core :: Comparable :: <=

not other < self
##### fun <=>(other: OTHER): Int

core :: Comparable :: <=>

-1 if <, +1 if > and 0 otherwise
##### fun ==(other: nullable Object): Bool

core :: Object :: ==

Have self and other the same value?
##### fun >(other: OTHER): Bool

core :: Comparable :: >

other < self
##### fun >=(other: OTHER): Bool

core :: Comparable :: >=

not self < other
##### intern fun >>(i: Int): UInt16

core :: UInt16 :: >>

i bits shift to the right
##### type CLASS: Class[SELF]

core :: Object :: CLASS

The type of the class of self.
##### type OTHER: Comparable

core :: Comparable :: OTHER

What self can be compared to?
##### type SELF: Object

core :: Object :: SELF

Type of this instance, automatically specialized in every class
##### intern fun ^(i: UInt16): UInt16

core :: UInt16 :: ^

Returns the result of a binary XOR operation on self and i
##### abstract fun add(other: Numeric): Numeric

core :: Numeric :: add

Universal + with any Numeric
##### fun clamp(min: OTHER, max: OTHER): OTHER

core :: Comparable :: clamp

Constraint self within [min..max]
##### protected fun class_factory(name: String): CLASS

core :: Object :: class_factory

Implementation used by get_class to create the specific class.
##### fun class_name: String

core :: Object :: class_name

The class name of the object.
##### init defaultinit

core :: Numeric :: defaultinit

##### init defaultinit

core :: Discrete :: defaultinit

##### init defaultinit

core :: Object :: defaultinit

##### init defaultinit

core :: Comparable :: defaultinit

##### fun distance(d: OTHER): Int

core :: Discrete :: distance

The distance between self and d.
##### abstract fun div(other: Numeric): Numeric

core :: Numeric :: div

Universal / with any Numeric
##### fun get_class: CLASS

core :: Object :: get_class

The meta-object representing the dynamic type of self.
##### fun hash: Int

core :: Object :: hash

The hash code of the object.
##### init init

core :: Object :: init

##### fun inspect: String

core :: Object :: inspect

Developer readable representation of self.
##### protected fun inspect_head: String

core :: Object :: inspect_head

Return "CLASSNAME:#OBJECTID".
##### fun is_between(c: OTHER, d: OTHER): Bool

core :: Comparable :: is_between

c <= self <= d
##### intern fun is_same_instance(other: nullable Object): Bool

core :: Object :: is_same_instance

Return true if self and other are the same instance (i.e. same identity).
##### fun is_same_serialized(other: nullable Object): Bool

core :: Object :: is_same_serialized

Is self the same as other in a serialization context?
##### intern fun is_same_type(other: Object): Bool

core :: Object :: is_same_type

Return true if self and other have the same dynamic type.
##### fun is_zero: Bool

core :: Numeric :: is_zero

Is this the value of zero in its domain?
##### fun max(other: OTHER): OTHER

core :: Comparable :: max

The maximum between self and other (prefers self if equals).
##### fun min(c: OTHER): OTHER

core :: Comparable :: min

The minimum between self and c (prefer self if equals)
##### abstract fun mul(other: Numeric): Numeric

core :: Numeric :: mul

Universal * with any Numeric
##### intern fun object_id: Int

core :: Object :: object_id

An internal hash code for the object based on its identity.
##### fun output

core :: Object :: output

Display self on stdout (debug only).
##### intern fun output_class_name

core :: Object :: output_class_name

Display class name on stdout (debug only).
##### abstract fun predecessor(i: Int): OTHER

core :: Discrete :: predecessor

The previous element.
##### fun serialization_hash: Int

core :: Object :: serialization_hash

Hash value use for serialization
##### abstract fun sub(other: Numeric): Numeric

core :: Numeric :: sub

Universal - with any Numeric
##### abstract fun successor(i: Int): OTHER

core :: Discrete :: successor

The next element.
##### intern fun sys: Sys

core :: Object :: sys

Return the global sys object, the only instance of the Sys class.
##### abstract fun to_b: Byte

core :: Numeric :: to_b

The byte equivalent of self
##### fun to_bi: BigInt

core :: Numeric :: to_bi

The BigInt equivalent of self
##### abstract fun to_f: Float

core :: Numeric :: to_f

The float equivalent of self
##### abstract fun to_i: Int

core :: Numeric :: to_i

The integer part of self.
##### fun to_i16: Int16

core :: Numeric :: to_i16

The Int16 equivalent of self
##### fun to_i32: Int32

core :: Numeric :: to_i32

The Int32 equivalent of self
##### fun to_i8: Int8

core :: Numeric :: to_i8

The Int8 equivalent of self
##### abstract fun to_jvalue(env: JniEnv): JValue

core :: Object :: to_jvalue

##### fun to_r: Ratio

core :: Numeric :: to_r

The Ratio equivalent of self
##### fun to_s: String

core :: Object :: to_s

User readable representation of self.
##### fun to_u16: UInt16

core :: Numeric :: to_u16

The UInt16 equivalent of self
##### fun to_u32: UInt32

core :: Numeric :: to_u32

The UInt32 equivalent of self
##### abstract fun unary -: OTHER

core :: Numeric :: unary -

Inverse of self
##### intern fun unary ~: UInt16

core :: UInt16 :: unary ~

Returns the 1's complement of self
##### abstract fun value_of(val: Numeric): OTHER

core :: Numeric :: value_of

The value of val in the domain of self
##### abstract fun zero: OTHER

core :: Numeric :: zero

The value of zero in the domain of self
##### intern fun |(i: UInt16): UInt16

core :: UInt16 :: |

Returns the result of a binary OR operation on self and i

### Ancestors

##### interface Comparable

core :: Comparable

The ancestor of class where objects are in a total order.
##### interface Object

core :: Object

The root of the class hierarchy.

### Parents

##### interface Discrete

core :: Discrete

Discrete total orders.
##### interface Numeric

core :: Numeric

A numeric value supporting mathematical operations

## Class definitions

##### core \$ UInt16
# Native 16-bit unsigned integer.
# Same as a C `uint16_t`
universal UInt16
super Discrete
super Numeric

redef type OTHER: UInt16

redef fun successor(i) do return self + i.to_u16
redef fun predecessor(i) do return self - i.to_u16

redef fun object_id is intern
redef fun hash do return self.to_i
redef fun ==(i) is intern
redef fun !=(i) is intern
redef fun output is intern

redef fun <=(i) is intern
redef fun <(i) is intern
redef fun >=(i) is intern
redef fun >(i) is intern
redef fun +(i) is intern

#     assert -1u16 == 0xFFFFu16
#     assert -0u16 == 0u16
redef fun - is intern
redef fun -(i) is intern
redef fun *(i) is intern
redef fun /(i) is intern

# Modulo of `self` with `i`.
#
# Returns the remainder of division of `self` by `i`.
#
#     assert 5u16 % 2u16	== 1u16
#     assert 10u16 % 2u16	== 0u16
fun %(i: UInt16): UInt16 is intern

redef fun zero do return 0.to_u16
redef fun value_of(val) do return val.to_u16

# `i` bits shift to the left
#
#     assert 5u16 << 1    == 10u16
fun <<(i: Int): UInt16 is intern

# `i` bits shift to the right
#
#     assert 5u16 >> 1    == 2u16
fun >>(i: Int): UInt16 is intern

redef fun to_i is intern
redef fun to_f is intern
redef fun to_b is intern
redef fun to_i8 is intern
redef fun to_i16 is intern
redef fun to_u16 do return self
redef fun to_i32 is intern
redef fun to_u32 is intern

redef fun distance(i) do return (self - i).to_i

redef fun <=>(other)
do
if self < other then
return -1
else if other < self then
return 1
else
return 0
end
end

redef fun is_between(c, d)
do
if self < c or d < self then
return false
else
return true
end
end

redef fun max(other)
do
if self < other then
return other
else
return self
end
end

redef fun min(c)
do
if c < self then
return c
else
return self
end
end

# Returns the result of a binary AND operation on `self` and `i`
#
#     assert 0x10u16 & 0x01u16 == 0u16
fun &(i: UInt16): UInt16 is intern

# Returns the result of a binary OR operation on `self` and `i`
#
#     assert 0x10u16 | 0x01u16 == 0x11u16
fun |(i: UInt16): UInt16 is intern

# Returns the result of a binary XOR operation on `self` and `i`
#
#     assert 0x101u16 ^ 0x110u16 == 0x11u16
fun ^(i: UInt16): UInt16 is intern

# Returns the 1's complement of `self`
#
#     assert ~0x2Fu16 == 0xFFD0u16
fun ~: UInt16 is intern
end
lib/core/fixed_ints.nit:343,1--462,3
##### core :: fixed_ints_text \$ UInt16
redef class UInt16
# C function to calculate the length of the `CString` to receive `self`
private fun to_s_len: Int `{
return snprintf(NULL, 0, "%"PRIu16, self);
`}

# C function to convert a nit Int to a CString (char*)
private fun native_to_s(nstr: CString, strlen: Int) `{
snprintf(nstr, strlen, "%"PRIu16, self);
`}

# Displayable UInt16
#
#     assert 1u16.to_s       == "1"
#     assert (-123u16).to_s  == "65413"
redef fun to_s do
var nslen = to_s_len
var ns = new CString(nslen + 1)
ns[nslen] = 0
native_to_s(ns, nslen + 1)
return ns.to_s_unsafe(nslen, copy=false)
end
end
lib/core/text/fixed_ints_text.nit:72,1--94,3