mirror of
https://github.com/c-cube/moonpool.git
synced 2025-12-17 08:06:43 -05:00
4 lines
No EOL
20 KiB
HTML
4 lines
No EOL
20 KiB
HTML
<!DOCTYPE html>
|
||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Int32 (ocaml.Stdlib.Int32)</title><link rel="stylesheet" href="../../../_odoc-theme/odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.2.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> – <a href="../../index.html">ocaml</a> » <a href="../index.html">Stdlib</a> » Int32</nav><header class="odoc-preamble"><h1>Module <code><span>Stdlib.Int32</span></code></h1><p>32-bit integers.</p><p>This module provides operations on the type <code>int32</code> of signed 32-bit integers. Unlike the built-in <code>int</code> type, the type <code>int32</code> is guaranteed to be exactly 32-bit wide on all platforms. All arithmetic operations over <code>int32</code> are taken modulo 2<sup>32</sup>.</p><p>Performance notice: values of type <code>int32</code> occupy more memory space than values of type <code>int</code>, and arithmetic operations on <code>int32</code> are generally slower than those on <code>int</code>. Use <code>int32</code> only when the application requires exact 32-bit arithmetic.</p><p>Literals for 32-bit integers are suffixed by l:</p><pre class="language-ocaml"><code>let zero: int32 = 0l
|
||
let one: int32 = 1l
|
||
let m_one: int32 = -1l</code></pre></header><div class="odoc-content"><div class="odoc-spec"><div class="spec value anchored" id="val-zero"><a href="#val-zero" class="anchor"></a><code><span><span class="keyword">val</span> zero : int32</span></code></div><div class="spec-doc"><p>The 32-bit integer 0.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-one"><a href="#val-one" class="anchor"></a><code><span><span class="keyword">val</span> one : int32</span></code></div><div class="spec-doc"><p>The 32-bit integer 1.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-minus_one"><a href="#val-minus_one" class="anchor"></a><code><span><span class="keyword">val</span> minus_one : int32</span></code></div><div class="spec-doc"><p>The 32-bit integer -1.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-neg"><a href="#val-neg" class="anchor"></a><code><span><span class="keyword">val</span> neg : <span>int32 <span class="arrow">-></span></span> int32</span></code></div><div class="spec-doc"><p>Unary negation.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-add"><a href="#val-add" class="anchor"></a><code><span><span class="keyword">val</span> add : <span>int32 <span class="arrow">-></span></span> <span>int32 <span class="arrow">-></span></span> int32</span></code></div><div class="spec-doc"><p>Addition.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-sub"><a href="#val-sub" class="anchor"></a><code><span><span class="keyword">val</span> sub : <span>int32 <span class="arrow">-></span></span> <span>int32 <span class="arrow">-></span></span> int32</span></code></div><div class="spec-doc"><p>Subtraction.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-mul"><a href="#val-mul" class="anchor"></a><code><span><span class="keyword">val</span> mul : <span>int32 <span class="arrow">-></span></span> <span>int32 <span class="arrow">-></span></span> int32</span></code></div><div class="spec-doc"><p>Multiplication.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-div"><a href="#val-div" class="anchor"></a><code><span><span class="keyword">val</span> div : <span>int32 <span class="arrow">-></span></span> <span>int32 <span class="arrow">-></span></span> int32</span></code></div><div class="spec-doc"><p>Integer division. This division rounds the real quotient of its arguments towards zero, as specified for <a href="../index.html#val-(/)"><code>Stdlib.(/)</code></a>.</p><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Division_by_zero</span> <p>if the second argument is zero.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-unsigned_div"><a href="#val-unsigned_div" class="anchor"></a><code><span><span class="keyword">val</span> unsigned_div : <span>int32 <span class="arrow">-></span></span> <span>int32 <span class="arrow">-></span></span> int32</span></code></div><div class="spec-doc"><p>Same as <a href="#val-div"><code>div</code></a>, except that arguments and result are interpreted as <em>unsigned</em> 32-bit integers.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 4.08.0</li></ul></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-rem"><a href="#val-rem" class="anchor"></a><code><span><span class="keyword">val</span> rem : <span>int32 <span class="arrow">-></span></span> <span>int32 <span class="arrow">-></span></span> int32</span></code></div><div class="spec-doc"><p>Integer remainder. If <code>y</code> is not zero, the result of <code>Int32.rem x y</code> satisfies the following property: <code>x = Int32.add (Int32.mul (Int32.div x y) y) (Int32.rem x y)</code>. If <code>y = 0</code>, <code>Int32.rem x y</code> raises <code>Division_by_zero</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-unsigned_rem"><a href="#val-unsigned_rem" class="anchor"></a><code><span><span class="keyword">val</span> unsigned_rem : <span>int32 <span class="arrow">-></span></span> <span>int32 <span class="arrow">-></span></span> int32</span></code></div><div class="spec-doc"><p>Same as <a href="#val-rem"><code>rem</code></a>, except that arguments and result are interpreted as <em>unsigned</em> 32-bit integers.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 4.08.0</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-succ"><a href="#val-succ" class="anchor"></a><code><span><span class="keyword">val</span> succ : <span>int32 <span class="arrow">-></span></span> int32</span></code></div><div class="spec-doc"><p>Successor. <code>Int32.succ x</code> is <code>Int32.add x Int32.one</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-pred"><a href="#val-pred" class="anchor"></a><code><span><span class="keyword">val</span> pred : <span>int32 <span class="arrow">-></span></span> int32</span></code></div><div class="spec-doc"><p>Predecessor. <code>Int32.pred x</code> is <code>Int32.sub x Int32.one</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-abs"><a href="#val-abs" class="anchor"></a><code><span><span class="keyword">val</span> abs : <span>int32 <span class="arrow">-></span></span> int32</span></code></div><div class="spec-doc"><p><code>abs x</code> is the absolute value of <code>x</code>. On <code>min_int</code> this is <code>min_int</code> itself and thus remains negative.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-max_int"><a href="#val-max_int" class="anchor"></a><code><span><span class="keyword">val</span> max_int : int32</span></code></div><div class="spec-doc"><p>The greatest representable 32-bit integer, 2<sup>31</sup> - 1.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-min_int"><a href="#val-min_int" class="anchor"></a><code><span><span class="keyword">val</span> min_int : int32</span></code></div><div class="spec-doc"><p>The smallest representable 32-bit integer, -2<sup>31</sup>.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-logand"><a href="#val-logand" class="anchor"></a><code><span><span class="keyword">val</span> logand : <span>int32 <span class="arrow">-></span></span> <span>int32 <span class="arrow">-></span></span> int32</span></code></div><div class="spec-doc"><p>Bitwise logical and.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-logor"><a href="#val-logor" class="anchor"></a><code><span><span class="keyword">val</span> logor : <span>int32 <span class="arrow">-></span></span> <span>int32 <span class="arrow">-></span></span> int32</span></code></div><div class="spec-doc"><p>Bitwise logical or.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-logxor"><a href="#val-logxor" class="anchor"></a><code><span><span class="keyword">val</span> logxor : <span>int32 <span class="arrow">-></span></span> <span>int32 <span class="arrow">-></span></span> int32</span></code></div><div class="spec-doc"><p>Bitwise logical exclusive or.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-lognot"><a href="#val-lognot" class="anchor"></a><code><span><span class="keyword">val</span> lognot : <span>int32 <span class="arrow">-></span></span> int32</span></code></div><div class="spec-doc"><p>Bitwise logical negation.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-shift_left"><a href="#val-shift_left" class="anchor"></a><code><span><span class="keyword">val</span> shift_left : <span>int32 <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> int32</span></code></div><div class="spec-doc"><p><code>Int32.shift_left x y</code> shifts <code>x</code> to the left by <code>y</code> bits. The result is unspecified if <code>y < 0</code> or <code>y >= 32</code>.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-shift_right"><a href="#val-shift_right" class="anchor"></a><code><span><span class="keyword">val</span> shift_right : <span>int32 <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> int32</span></code></div><div class="spec-doc"><p><code>Int32.shift_right x y</code> shifts <code>x</code> to the right by <code>y</code> bits. This is an arithmetic shift: the sign bit of <code>x</code> is replicated and inserted in the vacated bits. The result is unspecified if <code>y < 0</code> or <code>y >= 32</code>.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-shift_right_logical"><a href="#val-shift_right_logical" class="anchor"></a><code><span><span class="keyword">val</span> shift_right_logical : <span>int32 <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> int32</span></code></div><div class="spec-doc"><p><code>Int32.shift_right_logical x y</code> shifts <code>x</code> to the right by <code>y</code> bits. This is a logical shift: zeroes are inserted in the vacated bits regardless of the sign of <code>x</code>. The result is unspecified if <code>y < 0</code> or <code>y >= 32</code>.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-of_int"><a href="#val-of_int" class="anchor"></a><code><span><span class="keyword">val</span> of_int : <span>int <span class="arrow">-></span></span> int32</span></code></div><div class="spec-doc"><p>Convert the given integer (type <code>int</code>) to a 32-bit integer (type <code>int32</code>). On 64-bit platforms, the argument is taken modulo 2<sup>32</sup>.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-to_int"><a href="#val-to_int" class="anchor"></a><code><span><span class="keyword">val</span> to_int : <span>int32 <span class="arrow">-></span></span> int</span></code></div><div class="spec-doc"><p>Convert the given 32-bit integer (type <code>int32</code>) to an integer (type <code>int</code>). On 32-bit platforms, the 32-bit integer is taken modulo 2<sup>31</sup>, i.e. the high-order bit is lost during the conversion. On 64-bit platforms, the conversion is exact.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-unsigned_to_int"><a href="#val-unsigned_to_int" class="anchor"></a><code><span><span class="keyword">val</span> unsigned_to_int : <span>int32 <span class="arrow">-></span></span> <span>int option</span></span></code></div><div class="spec-doc"><p>Same as <a href="#val-to_int"><code>to_int</code></a>, but interprets the argument as an <em>unsigned</em> integer. Returns <code>None</code> if the unsigned value of the argument cannot fit into an <code>int</code>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 4.08.0</li></ul></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-of_float"><a href="#val-of_float" class="anchor"></a><code><span><span class="keyword">val</span> of_float : <span>float <span class="arrow">-></span></span> int32</span></code></div><div class="spec-doc"><p>Convert the given floating-point number to a 32-bit integer, discarding the fractional part (truncate towards 0). If the truncated floating-point number is outside the range [<a href="#val-min_int"><code>Int32.min_int</code></a>, <a href="#val-max_int"><code>Int32.max_int</code></a>], no exception is raised, and an unspecified, platform-dependent integer is returned.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-to_float"><a href="#val-to_float" class="anchor"></a><code><span><span class="keyword">val</span> to_float : <span>int32 <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p>Convert the given 32-bit integer to a floating-point number.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-of_string"><a href="#val-of_string" class="anchor"></a><code><span><span class="keyword">val</span> of_string : <span>string <span class="arrow">-></span></span> int32</span></code></div><div class="spec-doc"><p>Convert the given string to a 32-bit integer. The string is read in decimal (by default, or if the string begins with <code>0u</code>) or in hexadecimal, octal or binary if the string begins with <code>0x</code>, <code>0o</code> or <code>0b</code> respectively.</p><p>The <code>0u</code> prefix reads the input as an unsigned integer in the range <code>[0, 2*Int32.max_int+1]</code>. If the input exceeds <a href="#val-max_int"><code>Int32.max_int</code></a> it is converted to the signed integer <code>Int32.min_int + input - Int32.max_int - 1</code>.</p><p>The <code>_</code> (underscore) character can appear anywhere in the string and is ignored.</p><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Failure</span> <p>if the given string is not a valid representation of an integer, or if the integer represented exceeds the range of integers representable in type <code>int32</code>.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-of_string_opt"><a href="#val-of_string_opt" class="anchor"></a><code><span><span class="keyword">val</span> of_string_opt : <span>string <span class="arrow">-></span></span> <span>int32 option</span></span></code></div><div class="spec-doc"><p>Same as <code>of_string</code>, but return <code>None</code> instead of raising.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 4.05</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-to_string"><a href="#val-to_string" class="anchor"></a><code><span><span class="keyword">val</span> to_string : <span>int32 <span class="arrow">-></span></span> string</span></code></div><div class="spec-doc"><p>Return the string representation of its argument, in signed decimal.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-bits_of_float"><a href="#val-bits_of_float" class="anchor"></a><code><span><span class="keyword">val</span> bits_of_float : <span>float <span class="arrow">-></span></span> int32</span></code></div><div class="spec-doc"><p>Return the internal representation of the given float according to the IEEE 754 floating-point 'single format' bit layout. Bit 31 of the result represents the sign of the float; bits 30 to 23 represent the (biased) exponent; bits 22 to 0 represent the mantissa.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-float_of_bits"><a href="#val-float_of_bits" class="anchor"></a><code><span><span class="keyword">val</span> float_of_bits : <span>int32 <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p>Return the floating-point number whose internal representation, according to the IEEE 754 floating-point 'single format' bit layout, is the given <code>int32</code>.</p></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-t"><a href="#type-t" class="anchor"></a><code><span><span class="keyword">type</span> t</span><span> = int32</span></code></div><div class="spec-doc"><p>An alias for the type of 32-bit integers.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-compare"><a href="#val-compare" class="anchor"></a><code><span><span class="keyword">val</span> compare : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> int</span></code></div><div class="spec-doc"><p>The comparison function for 32-bit integers, with the same specification as <a href="../index.html#val-compare"><code>Stdlib.compare</code></a>. Along with the type <code>t</code>, this function <code>compare</code> allows the module <code>Int32</code> to be passed as argument to the functors <a href="../Set/Make/index.html"><code>Set.Make</code></a> and <a href="../Map/Make/index.html"><code>Map.Make</code></a>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-unsigned_compare"><a href="#val-unsigned_compare" class="anchor"></a><code><span><span class="keyword">val</span> unsigned_compare : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> int</span></code></div><div class="spec-doc"><p>Same as <a href="#val-compare"><code>compare</code></a>, except that arguments are interpreted as <em>unsigned</em> 32-bit integers.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 4.08.0</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-equal"><a href="#val-equal" class="anchor"></a><code><span><span class="keyword">val</span> equal : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> bool</span></code></div><div class="spec-doc"><p>The equal function for int32s.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 4.03.0</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-min"><a href="#val-min" class="anchor"></a><code><span><span class="keyword">val</span> min : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p>Return the smaller of the two arguments.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 4.13.0</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-max"><a href="#val-max" class="anchor"></a><code><span><span class="keyword">val</span> max : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p>Return the greater of the two arguments.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 4.13.0</li></ul></div></div></div></body></html> |