external-crates/move/crates/move-stdlib/docs/std/u16.md
<a name="std_u16"></a>
std::u16bitwise_notmaxmindiffdivide_and_round_uppowsqrttry_as_u8to_stringmax_valuerange_dorange_do_eqdodo_eq<a name="std_u16_bitwise_not"></a>
bitwise_notReturns the bitwise not of the value. Each bit that is 1 becomes 0. Each bit that is 0 becomes 1.
<pre><code><b>public</b> <b>fun</b> <a href="../std/u16.md#std_u16_bitwise_not">bitwise_not</a>(x: <a href="../std/u16.md#std_u16">u16</a>): <a href="../std/u16.md#std_u16">u16</a> </code></pre> <details> <summary>Implementation</summary> <pre><code><b>public</b> <b>fun</b> <a href="../std/u16.md#std_u16_bitwise_not">bitwise_not</a>(x: <a href="../std/u16.md#std_u16">u16</a>): <a href="../std/u16.md#std_u16">u16</a> { x ^ <a href="../std/u16.md#std_u16_max_value">max_value</a>!() } </code></pre> </details><a name="std_u16_max"></a>
maxReturn the larger of <code>x</code> and <code>y</code>
<pre><code><b>public</b> <b>fun</b> <a href="../std/u16.md#std_u16_max">max</a>(x: <a href="../std/u16.md#std_u16">u16</a>, y: <a href="../std/u16.md#std_u16">u16</a>): <a href="../std/u16.md#std_u16">u16</a> </code></pre> <details> <summary>Implementation</summary> <pre><code><b>public</b> <b>fun</b> <a href="../std/u16.md#std_u16_max">max</a>(x: <a href="../std/u16.md#std_u16">u16</a>, y: <a href="../std/u16.md#std_u16">u16</a>): <a href="../std/u16.md#std_u16">u16</a> { <a href="../std/macros.md#std_macros_num_max">std::macros::num_max</a>!(x, y) } </code></pre> </details><a name="std_u16_min"></a>
minReturn the smaller of <code>x</code> and <code>y</code>
<pre><code><b>public</b> <b>fun</b> <a href="../std/u16.md#std_u16_min">min</a>(x: <a href="../std/u16.md#std_u16">u16</a>, y: <a href="../std/u16.md#std_u16">u16</a>): <a href="../std/u16.md#std_u16">u16</a> </code></pre> <details> <summary>Implementation</summary> <pre><code><b>public</b> <b>fun</b> <a href="../std/u16.md#std_u16_min">min</a>(x: <a href="../std/u16.md#std_u16">u16</a>, y: <a href="../std/u16.md#std_u16">u16</a>): <a href="../std/u16.md#std_u16">u16</a> { <a href="../std/macros.md#std_macros_num_min">std::macros::num_min</a>!(x, y) } </code></pre> </details><a name="std_u16_diff"></a>
diffReturn the absolute value of x - y
<pre><code><b>public</b> <b>fun</b> <a href="../std/u16.md#std_u16_diff">diff</a>(x: <a href="../std/u16.md#std_u16">u16</a>, y: <a href="../std/u16.md#std_u16">u16</a>): <a href="../std/u16.md#std_u16">u16</a> </code></pre> <details> <summary>Implementation</summary> <pre><code><b>public</b> <b>fun</b> <a href="../std/u16.md#std_u16_diff">diff</a>(x: <a href="../std/u16.md#std_u16">u16</a>, y: <a href="../std/u16.md#std_u16">u16</a>): <a href="../std/u16.md#std_u16">u16</a> { <a href="../std/macros.md#std_macros_num_diff">std::macros::num_diff</a>!(x, y) } </code></pre> </details><a name="std_u16_divide_and_round_up"></a>
divide_and_round_upCalculate x / y, but round up the result.
<pre><code><b>public</b> <b>fun</b> <a href="../std/u16.md#std_u16_divide_and_round_up">divide_and_round_up</a>(x: <a href="../std/u16.md#std_u16">u16</a>, y: <a href="../std/u16.md#std_u16">u16</a>): <a href="../std/u16.md#std_u16">u16</a> </code></pre> <details> <summary>Implementation</summary> <pre><code><b>public</b> <b>fun</b> <a href="../std/u16.md#std_u16_divide_and_round_up">divide_and_round_up</a>(x: <a href="../std/u16.md#std_u16">u16</a>, y: <a href="../std/u16.md#std_u16">u16</a>): <a href="../std/u16.md#std_u16">u16</a> { <a href="../std/macros.md#std_macros_num_divide_and_round_up">std::macros::num_divide_and_round_up</a>!(x, y) } </code></pre> </details><a name="std_u16_pow"></a>
powReturn the value of a base raised to a power
<pre><code><b>public</b> <b>fun</b> <a href="../std/u16.md#std_u16_pow">pow</a>(base: <a href="../std/u16.md#std_u16">u16</a>, exponent: <a href="../std/u8.md#std_u8">u8</a>): <a href="../std/u16.md#std_u16">u16</a> </code></pre> <details> <summary>Implementation</summary> <pre><code><b>public</b> <b>fun</b> <a href="../std/u16.md#std_u16_pow">pow</a>(base: <a href="../std/u16.md#std_u16">u16</a>, exponent: <a href="../std/u8.md#std_u8">u8</a>): <a href="../std/u16.md#std_u16">u16</a> { <a href="../std/macros.md#std_macros_num_pow">std::macros::num_pow</a>!(base, exponent) } </code></pre> </details><a name="std_u16_sqrt"></a>
sqrtGet a nearest lower integer Square Root for <code>x</code>. Given that this function can only operate with integers, it is impossible to get perfect (or precise) integer square root for some numbers.
Example:
math::sqrt(9) => 3
math::sqrt(8) => 2 // the nearest lower square root is 4;
In integer math, one of the possible ways to get results with more precision is to use higher values or temporarily multiply the value by some bigger number. Ideally if this is a square of 10 or 100.
Example:
math::sqrt(8) => 2;
math::sqrt(8 * 10000) => 282;
// now we can use this value as if it was 2.82;
// but to get the actual result, this value needs
// to be divided by 100 (because sqrt(10000)).
math::sqrt(8 * 1000000) => 2828; // same as above, 2828 / 1000 (2.828)
<a name="std_u16_try_as_u8"></a>
try_as_u8Try to convert a <code><a href="../std/u16.md#std_u16">u16</a></code> to a <code><a href="../std/u8.md#std_u8">u8</a></code>. Returns <code>None</code> if the value is too large.
<pre><code><b>public</b> <b>fun</b> <a href="../std/u16.md#std_u16_try_as_u8">try_as_u8</a>(x: <a href="../std/u16.md#std_u16">u16</a>): <a href="../std/option.md#std_option_Option">std::option::Option</a><<a href="../std/u8.md#std_u8">u8</a>> </code></pre> <details> <summary>Implementation</summary> <pre><code><b>public</b> <b>fun</b> <a href="../std/u16.md#std_u16_try_as_u8">try_as_u8</a>(x: <a href="../std/u16.md#std_u16">u16</a>): Option<<a href="../std/u8.md#std_u8">u8</a>> { <a href="../std/macros.md#std_macros_try_as_u8">std::macros::try_as_u8</a>!(x) } </code></pre> </details><a name="std_u16_to_string"></a>
to_string<a name="std_u16_max_value"></a>
max_valueMaximum value for a <code><a href="../std/u16.md#std_u16">u16</a></code>
<pre><code><b>public</b> <b>macro</b> <b>fun</b> <a href="../std/u16.md#std_u16_max_value">max_value</a>(): <a href="../std/u16.md#std_u16">u16</a> </code></pre> <details> <summary>Implementation</summary> <pre><code><b>public</b> <b>macro</b> <b>fun</b> <a href="../std/u16.md#std_u16_max_value">max_value</a>(): <a href="../std/u16.md#std_u16">u16</a> { 0xFFFF } </code></pre> </details><a name="std_u16_range_do"></a>
range_doLoops applying <code>$f</code> to each number from <code>$start</code> to <code>$stop</code> (exclusive)
<pre><code><b>public</b> <b>macro</b> <b>fun</b> <a href="../std/u16.md#std_u16_range_do">range_do</a><$R: drop>($start: <a href="../std/u16.md#std_u16">u16</a>, $stop: <a href="../std/u16.md#std_u16">u16</a>, $f: |<a href="../std/u16.md#std_u16">u16</a>| -> $R) </code></pre> <details> <summary>Implementation</summary> <pre><code><b>public</b> <b>macro</b> <b>fun</b> <a href="../std/u16.md#std_u16_range_do">range_do</a><$R: drop>($start: <a href="../std/u16.md#std_u16">u16</a>, $stop: <a href="../std/u16.md#std_u16">u16</a>, $f: |<a href="../std/u16.md#std_u16">u16</a>| -> $R) { <a href="../std/macros.md#std_macros_range_do">std::macros::range_do</a>!($start, $stop, $f) } </code></pre> </details><a name="std_u16_range_do_eq"></a>
range_do_eqLoops applying <code>$f</code> to each number from <code>$start</code> to <code>$stop</code> (inclusive)
<pre><code><b>public</b> <b>macro</b> <b>fun</b> <a href="../std/u16.md#std_u16_range_do_eq">range_do_eq</a><$R: drop>($start: <a href="../std/u16.md#std_u16">u16</a>, $stop: <a href="../std/u16.md#std_u16">u16</a>, $f: |<a href="../std/u16.md#std_u16">u16</a>| -> $R) </code></pre> <details> <summary>Implementation</summary> <pre><code><b>public</b> <b>macro</b> <b>fun</b> <a href="../std/u16.md#std_u16_range_do_eq">range_do_eq</a><$R: drop>($start: <a href="../std/u16.md#std_u16">u16</a>, $stop: <a href="../std/u16.md#std_u16">u16</a>, $f: |<a href="../std/u16.md#std_u16">u16</a>| -> $R) { <a href="../std/macros.md#std_macros_range_do_eq">std::macros::range_do_eq</a>!($start, $stop, $f) } </code></pre> </details><a name="std_u16_do"></a>
doLoops applying <code>$f</code> to each number from <code>0</code> to <code>$stop</code> (exclusive)
<pre><code><b>public</b> <b>macro</b> <b>fun</b> <a href="../std/u16.md#std_u16_do">do</a><$R: drop>($stop: <a href="../std/u16.md#std_u16">u16</a>, $f: |<a href="../std/u16.md#std_u16">u16</a>| -> $R) </code></pre> <details> <summary>Implementation</summary> <pre><code><b>public</b> <b>macro</b> <b>fun</b> <a href="../std/u16.md#std_u16_do">do</a><$R: drop>($stop: <a href="../std/u16.md#std_u16">u16</a>, $f: |<a href="../std/u16.md#std_u16">u16</a>| -> $R) { <a href="../std/macros.md#std_macros_do">std::macros::do</a>!($stop, $f) } </code></pre> </details><a name="std_u16_do_eq"></a>
do_eqLoops applying <code>$f</code> to each number from <code>0</code> to <code>$stop</code> (inclusive)
<pre><code><b>public</b> <b>macro</b> <b>fun</b> <a href="../std/u16.md#std_u16_do_eq">do_eq</a><$R: drop>($stop: <a href="../std/u16.md#std_u16">u16</a>, $f: |<a href="../std/u16.md#std_u16">u16</a>| -> $R) </code></pre> <details> <summary>Implementation</summary> <pre><code><b>public</b> <b>macro</b> <b>fun</b> <a href="../std/u16.md#std_u16_do_eq">do_eq</a><$R: drop>($stop: <a href="../std/u16.md#std_u16">u16</a>, $f: |<a href="../std/u16.md#std_u16">u16</a>| -> $R) { <a href="../std/macros.md#std_macros_do_eq">std::macros::do_eq</a>!($stop, $f) } </code></pre> </details>