ibm-information-center/dist/eclipse/plugins/i5OS.ic.apis_5.4.0.1/ile5a2.htm

262 lines
7.5 KiB
HTML
Raw Normal View History

2024-04-02 14:02:31 +00:00
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Copyright" content="Copyright (c) 2006 by IBM Corporation">
<title>Data Types and Limits</title>
<!-- Begin Header Records ========================================= -->
<!-- All rights reserved. Licensed Materials Property of IBM -->
<!-- US Government Users Restricted Rights -->
<!-- Use, duplication or disclosure restricted by -->
<!-- GSA ADP Schedule Contract with IBM Corp. -->
<!-- Change History: -->
<!-- YYMMDD USERID Change description -->
<!-- ILE5A SCRIPT A converted by B2H R4.1 (346) (CMS) by NLJONES at -->
<!-- RCHVMX on 25 Feb 1999 at 15:07:42 -->
<link rel="stylesheet" type="text/css" href="../rzahg/ic.css">
</head>
<body>
<!-- Edited by Kersten Oct 2001 -->
<!-- End Header Records -->
<!-- Java sync-link -->
<script type="text/javascript" language="Javascript" src="../rzahg/synch.js">
</script>
<h2>Data Types and Limits</h2>
<p>Following is a description of the data types used in the math bindable APIs.
The special values and limits of the data types are also listed.</p>
<p>The semantics and requirements of a high-level language may affect the
values of the data types.</p>
<br>
<h3>Integer Data Types</h3>
<p>The following table shows the range of values that math bindable APIs can
represent and use with the integer data types.</p>
<p><em><a name="TBLMATHTB1">Precise Limit Values of Integer Data
Types</a></em></p>
<table border cellpadding="3">
<tr>
<th align="left" valign="top">Data Type</th>
<th align="left" valign="top">Length (bytes)</th>
<th align="left" valign="top">Range of values</th>
</tr>
<tr>
<td align="left" valign="top">INT2</td>
<td align="left" valign="top">2</td>
<td align="left" valign="top">-32&nbsp;768 through 32&nbsp;767</td>
</tr>
<tr>
<td align="left" valign="top">INT4</td>
<td align="left" valign="top">4</td>
<td align="left" valign="top">-2 147 483 648 through 2 147 483 647</td>
</tr>
<tr>
<td align="left" valign="top">INT8 (See note)</td>
<td align="left" valign="top">8</td>
<td align="left" valign="top">-9223372036854775808 through
9223372036854775807</td>
</tr>
<tr>
<td colspan="3"><strong>Note:</strong> The data type is not currently
available. For ILE C, storage for this variable could be defined as
char(8).</td>
</tr>
</table>
<p>The operating system represents integers internally in two's complement
notation, and the leftmost bit is the sign of the number.</p>
<br>
<h3>Real Data Types</h3>
<p>The following table shows the range of values that math bindable APIs can
represent and use with the real data types.</p>
<p><em><a name="TBLMATHTB2">Approximate Limit Values of Real Data
Types</a></em></p>
<table border cellpadding="3">
<tr>
<th align="left" valign="bottom">Data Type</th>
<th align="left" valign="bottom">Length (bytes)</th>
<th align="left" valign="bottom">Approximate Absolute Nonzero Minimum</th>
<th align="left" valign="bottom">Approximate Absolute Maximum</th>
<th align="left" valign="bottom">Approximate Precision (Decimal Digits)</th>
</tr>
<tr>
<td align="left" valign="top">FLOAT4</td>
<td align="left" valign="top">4</td>
<td align="left" valign="top">1.175494 x 10<sup>-38</sup></td>
<td align="left" valign="top">3.402823 x 10<sup>38</sup></td>
<td align="left" valign="top">7</td>
</tr>
<tr>
<td align="left" valign="top">FLOAT8</td>
<td align="left" valign="top">8</td>
<td align="left" valign="top">2.225074 x 10<sup>-308</sup></td>
<td align="left" valign="top">1.797693 x 10<sup>308</sup></td>
<td align="left" valign="top">15</td>
</tr>
</table>
<p>The operating system represents real data type values in IEEE floating-point
format.</p>
<p>The following table lists the special values for floating-point operations.
The values adhere to the IEEE standard for binary floating-point
arithmetic.</p>
<p><em><a name="TBLMATHTB3">Floating-point Special Values</a></em></p>
<table border cellpadding="3">
<tr>
<th align="left" valign="top">Data Type</th>
<th align="left" valign="top">Description</th>
<th align="left" valign="top">Values</th>
</tr>
<tr>
<td align="left" valign="top">FLOAT4</td>
<td align="left" valign="top">+INF</td>
<td align="left" valign="top">0x7F800000</td>
</tr>
<tr>
<td align="left" valign="top">FLOAT4</td>
<td align="left" valign="top">HUGE</td>
<td align="left" valign="top">0x7F7FFFFF</td>
</tr>
<tr>
<td align="left" valign="top">FLOAT4</td>
<td align="left" valign="top">+0</td>
<td align="left" valign="top">0x00000000</td>
</tr>
<tr>
<td align="left" valign="top">FLOAT4</td>
<td align="left" valign="top">-0</td>
<td align="left" valign="top">0x80000000</td>
</tr>
<tr>
<td align="left" valign="top">FLOAT4</td>
<td align="left" valign="top">-INF</td>
<td align="left" valign="top">0xFF800000</td>
</tr>
<tr>
<td align="left" valign="top">FLOAT4</td>
<td align="left" valign="top">masked NaN</td>
<td align="left" valign="top">0x7FC00000</td>
</tr>
<tr>
<td align="left" valign="top">FLOAT4</td>
<td align="left" valign="top">unmasked NaN</td>
<td align="left" valign="top">0x7F800010</td>
</tr>
<tr>
<td align="left" valign="top">FLOAT8</td>
<td align="left" valign="top">+INF</td>
<td align="left" valign="top">0x7FF00000 0x00000000</td>
</tr>
<tr>
<td align="left" valign="top">FLOAT8</td>
<td align="left" valign="top">HUGE</td>
<td align="left" valign="top">0x7FEFFFFF 0xFFFFFFFF</td>
</tr>
<tr>
<td align="left" valign="top">FLOAT8</td>
<td align="left" valign="top">+0</td>
<td align="left" valign="top">0x00000000 0x00000000</td>
</tr>
<tr>
<td align="left" valign="top">FLOAT8</td>
<td align="left" valign="top">-0</td>
<td align="left" valign="top">0x80000000 0x00000000</td>
</tr>
<tr>
<td align="left" valign="top">FLOAT8</td>
<td align="left" valign="top">-INF</td>
<td align="left" valign="top">0xFFF00000 0x00000000</td>
</tr>
<tr>
<td align="left" valign="top">FLOAT8</td>
<td align="left" valign="top">masked NaN</td>
<td align="left" valign="top">0x7FF80000 0x00000000</td>
</tr>
<tr>
<td align="left" valign="top">FLOAT8</td>
<td align="left" valign="top">unmasked NaN</td>
<td align="left" valign="top">0x7FF00000 0x00000001</td>
</tr>
</table>
<br>
<h3>Complex Data Types</h3>
<p>The following table shows the range of values that the math bindable APIs
can represent and can use with complex data types.</p>
<p><em><a name="TBLMATHTB4">Approximate Limit Values of Complex Data
Types</a></em></p>
<table border cellpadding="3">
<tr>
<th align="left" valign="top">Data Type</th>
<th align="left" valign="top">Length (bytes)</th>
<th align="left" valign="top">Approximate Values</th>
</tr>
<tr>
<td align="left" valign="top">COMPLEX8</td>
<td align="left" valign="top">8</td>
<td align="left" valign="top">Both real and imaginary parts are _FLOAT4. See <a
href="#TBLMATHTB2">Approximate Limit Values of Real Data Types</a></td>
</tr>
<tr>
<td align="left" valign="top">COMPLEX16</td>
<td align="left" valign="top">16</td>
<td align="left" valign="top">Both real and imaginary parts are FLOAT8. See <a
href="#TBLMATHTB2">Approximate Limit Values of Real Data Types</a></td>
</tr>
</table>
<br><br>
<hr>
<center>
<table cellpadding="2" cellspacing="2">
<tr align="center">
<td valign="middle" align="center">
<a href="#Top_Of_Page">Top</a> |
<a href="ile1a1.htm">ILE CEE APIs</a> |
<a href="aplist.htm">APIs by category</a></td>
</tr>
</table>
</center>
</body>
</html>