Back to Sui

Module `std::u8`

external-crates/move/crates/move-stdlib/docs/std/u8.md

latest10.7 KB
Original Source

<a name="std_u8"></a>

Module std::u8

<pre><code><b>use</b> <a href="../std/ascii.md#std_ascii">std::ascii</a>; <b>use</b> <a href="../std/option.md#std_option">std::option</a>; <b>use</b> <a href="../std/string.md#std_string">std::string</a>; <b>use</b> <a href="../std/vector.md#std_vector">std::vector</a>; </code></pre>

<a name="std_u8_bitwise_not"></a>

Function bitwise_not

Returns 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/u8.md#std_u8_bitwise_not">bitwise_not</a>(x: <a href="../std/u8.md#std_u8">u8</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/u8.md#std_u8_bitwise_not">bitwise_not</a>(x: <a href="../std/u8.md#std_u8">u8</a>): <a href="../std/u8.md#std_u8">u8</a> { x ^ <a href="../std/u8.md#std_u8_max_value">max_value</a>!() } </code></pre> </details>

<a name="std_u8_max"></a>

Function max

Return the larger of <code>x</code> and <code>y</code>

<pre><code><b>public</b> <b>fun</b> <a href="../std/u8.md#std_u8_max">max</a>(x: <a href="../std/u8.md#std_u8">u8</a>, y: <a href="../std/u8.md#std_u8">u8</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/u8.md#std_u8_max">max</a>(x: <a href="../std/u8.md#std_u8">u8</a>, y: <a href="../std/u8.md#std_u8">u8</a>): <a href="../std/u8.md#std_u8">u8</a> { <a href="../std/macros.md#std_macros_num_max">std::macros::num_max</a>!(x, y) } </code></pre> </details>

<a name="std_u8_min"></a>

Function min

Return the smaller of <code>x</code> and <code>y</code>

<pre><code><b>public</b> <b>fun</b> <a href="../std/u8.md#std_u8_min">min</a>(x: <a href="../std/u8.md#std_u8">u8</a>, y: <a href="../std/u8.md#std_u8">u8</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/u8.md#std_u8_min">min</a>(x: <a href="../std/u8.md#std_u8">u8</a>, y: <a href="../std/u8.md#std_u8">u8</a>): <a href="../std/u8.md#std_u8">u8</a> { <a href="../std/macros.md#std_macros_num_min">std::macros::num_min</a>!(x, y) } </code></pre> </details>

<a name="std_u8_diff"></a>

Function diff

Return the absolute value of x - y

<pre><code><b>public</b> <b>fun</b> <a href="../std/u8.md#std_u8_diff">diff</a>(x: <a href="../std/u8.md#std_u8">u8</a>, y: <a href="../std/u8.md#std_u8">u8</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/u8.md#std_u8_diff">diff</a>(x: <a href="../std/u8.md#std_u8">u8</a>, y: <a href="../std/u8.md#std_u8">u8</a>): <a href="../std/u8.md#std_u8">u8</a> { <a href="../std/macros.md#std_macros_num_diff">std::macros::num_diff</a>!(x, y) } </code></pre> </details>

<a name="std_u8_divide_and_round_up"></a>

Function divide_and_round_up

Calculate x / y, but round up the result.

<pre><code><b>public</b> <b>fun</b> <a href="../std/u8.md#std_u8_divide_and_round_up">divide_and_round_up</a>(x: <a href="../std/u8.md#std_u8">u8</a>, y: <a href="../std/u8.md#std_u8">u8</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/u8.md#std_u8_divide_and_round_up">divide_and_round_up</a>(x: <a href="../std/u8.md#std_u8">u8</a>, y: <a href="../std/u8.md#std_u8">u8</a>): <a href="../std/u8.md#std_u8">u8</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_u8_pow"></a>

Function pow

Return the value of a base raised to a power

<pre><code><b>public</b> <b>fun</b> <a href="../std/u8.md#std_u8_pow">pow</a>(base: <a href="../std/u8.md#std_u8">u8</a>, exponent: <a href="../std/u8.md#std_u8">u8</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/u8.md#std_u8_pow">pow</a>(base: <a href="../std/u8.md#std_u8">u8</a>, exponent: <a href="../std/u8.md#std_u8">u8</a>): <a href="../std/u8.md#std_u8">u8</a> { <a href="../std/macros.md#std_macros_num_pow">std::macros::num_pow</a>!(base, exponent) } </code></pre> </details>

<a name="std_u8_sqrt"></a>

Function sqrt

Get 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)
<pre><code><b>public</b> <b>fun</b> <a href="../std/u8.md#std_u8_sqrt">sqrt</a>(x: <a href="../std/u8.md#std_u8">u8</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/u8.md#std_u8_sqrt">sqrt</a>(x: <a href="../std/u8.md#std_u8">u8</a>): <a href="../std/u8.md#std_u8">u8</a> { <a href="../std/macros.md#std_macros_num_sqrt">std::macros::num_sqrt</a>!&lt;<a href="../std/u8.md#std_u8">u8</a>, <a href="../std/u16.md#std_u16">u16</a>&gt;(x, 8) } </code></pre> </details>

<a name="std_u8_to_string"></a>

Function to_string

<pre><code><b>public</b> <b>fun</b> <a href="../std/u8.md#std_u8_to_string">to_string</a>(x: <a href="../std/u8.md#std_u8">u8</a>): <a href="../std/string.md#std_string_String">std::string::String</a> </code></pre> <details> <summary>Implementation</summary> <pre><code><b>public</b> <b>fun</b> <a href="../std/u8.md#std_u8_to_string">to_string</a>(x: <a href="../std/u8.md#std_u8">u8</a>): String { <a href="../std/macros.md#std_macros_num_to_string">std::macros::num_to_string</a>!(x) } </code></pre> </details>

<a name="std_u8_max_value"></a>

Macro function max_value

Maximum value for a <code><a href="../std/u8.md#std_u8">u8</a></code>

<pre><code><b>public</b> <b>macro</b> <b>fun</b> <a href="../std/u8.md#std_u8_max_value">max_value</a>(): <a href="../std/u8.md#std_u8">u8</a> </code></pre> <details> <summary>Implementation</summary> <pre><code><b>public</b> <b>macro</b> <b>fun</b> <a href="../std/u8.md#std_u8_max_value">max_value</a>(): <a href="../std/u8.md#std_u8">u8</a> { 0xFF } </code></pre> </details>

<a name="std_u8_range_do"></a>

Macro function range_do

Loops 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/u8.md#std_u8_range_do">range_do</a>&lt;$R: drop&gt;($start: <a href="../std/u8.md#std_u8">u8</a>, $stop: <a href="../std/u8.md#std_u8">u8</a>, $f: |<a href="../std/u8.md#std_u8">u8</a>| -&gt; $R) </code></pre> <details> <summary>Implementation</summary> <pre><code><b>public</b> <b>macro</b> <b>fun</b> <a href="../std/u8.md#std_u8_range_do">range_do</a>&lt;$R: drop&gt;($start: <a href="../std/u8.md#std_u8">u8</a>, $stop: <a href="../std/u8.md#std_u8">u8</a>, $f: |<a href="../std/u8.md#std_u8">u8</a>| -&gt; $R) { <a href="../std/macros.md#std_macros_range_do">std::macros::range_do</a>!($start, $stop, $f) } </code></pre> </details>

<a name="std_u8_range_do_eq"></a>

Macro function range_do_eq

Loops 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/u8.md#std_u8_range_do_eq">range_do_eq</a>&lt;$R: drop&gt;($start: <a href="../std/u8.md#std_u8">u8</a>, $stop: <a href="../std/u8.md#std_u8">u8</a>, $f: |<a href="../std/u8.md#std_u8">u8</a>| -&gt; $R) </code></pre> <details> <summary>Implementation</summary> <pre><code><b>public</b> <b>macro</b> <b>fun</b> <a href="../std/u8.md#std_u8_range_do_eq">range_do_eq</a>&lt;$R: drop&gt;($start: <a href="../std/u8.md#std_u8">u8</a>, $stop: <a href="../std/u8.md#std_u8">u8</a>, $f: |<a href="../std/u8.md#std_u8">u8</a>| -&gt; $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_u8_do"></a>

Macro function do

Loops 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/u8.md#std_u8_do">do</a>&lt;$R: drop&gt;($stop: <a href="../std/u8.md#std_u8">u8</a>, $f: |<a href="../std/u8.md#std_u8">u8</a>| -&gt; $R) </code></pre> <details> <summary>Implementation</summary> <pre><code><b>public</b> <b>macro</b> <b>fun</b> <a href="../std/u8.md#std_u8_do">do</a>&lt;$R: drop&gt;($stop: <a href="../std/u8.md#std_u8">u8</a>, $f: |<a href="../std/u8.md#std_u8">u8</a>| -&gt; $R) { <a href="../std/macros.md#std_macros_do">std::macros::do</a>!($stop, $f) } </code></pre> </details>

<a name="std_u8_do_eq"></a>

Macro function do_eq

Loops 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/u8.md#std_u8_do_eq">do_eq</a>&lt;$R: drop&gt;($stop: <a href="../std/u8.md#std_u8">u8</a>, $f: |<a href="../std/u8.md#std_u8">u8</a>| -&gt; $R) </code></pre> <details> <summary>Implementation</summary> <pre><code><b>public</b> <b>macro</b> <b>fun</b> <a href="../std/u8.md#std_u8_do_eq">do_eq</a>&lt;$R: drop&gt;($stop: <a href="../std/u8.md#std_u8">u8</a>, $f: |<a href="../std/u8.md#std_u8">u8</a>| -&gt; $R) { <a href="../std/macros.md#std_macros_do_eq">std::macros::do_eq</a>!($stop, $f) } </code></pre> </details>