/
n-dimens
/
pascalabcnet
Обзор
Документация
Войти
/
n-dimens
/
pascalabcnet
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
PABCNetHelp/LangGuide/Operations_Expressions/arithmop.html
270 строк
10 KB
samuraiGH
adding working-tree-encoding attribute (#3325)
07 ноя 2025, 16:12
Не верифицирован
07 ноя 2025, 16:12
cf1fd29
Код
Авторство
О чём код?
<html><head> <object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e"> <param name="Keyword" value="div"> <param name="Keyword" value="mod"> <param name="Keyword" value="Возведение в степень"> </object> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <title></title> <link rel="StyleSheet" href="../../default.css"> <style type="text/css"> .auto-style1 { text-align: center; } </style> </head> <body><H1>Арифметические операции</H1> <p>К <i>арифметическим</i> относятся бинарные операции <code>+</code>, <code>-</code>, <code>*</code>, <code>/</code> для вещественных и целых чисел, бинарные операции <b><code>div</code></b> и <b><code>mod</code></b> для целых чисел и унарные операции <code>+</code> и <code>-</code> для вещественных и целых чисел. Тип выражения <code>x</code> <i>op</i> <code>y</code>, где <i>op</i> - знак бинарной операции <code>+</code>, <code>-</code> или <code>*</code>, определяется из следующей таблицы: </p> <p> </p> <table border="1" width="100%" id="table1"> <tr> <td> </td> <td><b><code>shortint</code></b></td> <td><b><code>byte</code></b></td> <td><b><code>smallint</code></b></td> <td><b><code>word</code></b></td> <td><b><code>integer</code></b></td> <td><b><code>longword</code></b></td> <td><b><code>int64</code></b></td> <td><b><code>uint64</code></b></td> <td><b><code>BigInteger</code></b></td> <td><b><code>single</code></b></td> <td><b><code>real</code></b></td> <td><b><code>decimal</code></b></td> </tr> <tr> <td><b><code>shortint</code></b></td> <td><code>integer</code></td> <td><code>integer</code></td> <td><code>integer</code></td> <td><code>integer</code></td> <td><code>integer</code></td> <td><code>int64</code></td> <td><code>int64</code></td> <td><code>uint64</code></td> <td><code>BigInteger</code></td> <td><code>single</code></td> <td><code>real</code></td> <td><code>decimal</code></td> </tr> <tr> <td><b><code>byte</code></b></td> <td><code>integer</code></td> <td><code>integer</code></td> <td><code>integer</code></td> <td><code>integer</code></td> <td><code>integer</code></td> <td><code>longword</code></td> <td><code>int64</code></td> <td><code>uint64</code></td> <td><code>BigInteger</code></td> <td><code>single</code></td> <td><code>real</code></td> <td><code>decimal</code></td> </tr> <tr> <td><b><code>smallint</code></b></td> <td><code>integer</code></td> <td><code>integer</code></td> <td><code>integer</code></td> <td><code>integer</code></td> <td><code>integer</code></td> <td><code>int64</code></td> <td><code>int64</code></td> <td><code>uint64</code></td> <td><code>BigInteger</code></td> <td><code>single</code></td> <td><code>real</code></td> <td><code>decimal</code></td> </tr> <tr> <td><b><code>word</code></b></td> <td><code>integer</code></td> <td><code>integer</code></td> <td><code>integer</code></td> <td><code>integer</code></td> <td><code>integer</code></td> <td><code>longword</code></td> <td><code>int64</code></td> <td><code>uint64</code></td> <td><code>BigInteger</code></td> <td><code>single</code></td> <td><code>real</code></td> <td><code>decimal</code></td> </tr> <tr> <td><b><code>integer</code></b></td> <td><code>integer</code></td> <td><code>integer</code></td> <td><code>integer</code></td> <td><code>integer</code></td> <td><code>integer</code></td> <td><code>int64</code></td> <td><code>int64</code></td> <td><code>uint64</code></td> <td><code>BigInteger</code></td> <td><code>single</code></td> <td><code>real</code></td> <td><code>decimal</code></td> </tr> <tr> <td><b><code>longword</code></b></td> <td><code>int64</code></td> <td><code>longword</code></td> <td><code>int64</code></td> <td><code>longword</code></td> <td><code>int64</code></td> <td><code>longword</code></td> <td><code>uint64</code></td> <td><code>uint64</code></td> <td><code>BigInteger</code></td> <td><code>single</code></td> <td><code>real</code></td> <td><code>decimal</code></td> </tr> <tr> <td><b><code>int64</code></b></td> <td><code>int64</code></td> <td><code>int64</code></td> <td><code>int64</code></td> <td><code>int64</code></td> <td><code>int64</code></td> <td><code>uint64</code></td> <td><code>int64</code></td> <td><code>uint64</code></td> <td><code>BigInteger</code></td> <td><code>single</code></td> <td><code>real</code></td> <td><code>decimal</code></td> </tr> <tr> <td><b><code>uint64</code></b></td> <td><code>uint64</code></td> <td><code>uint64</code></td> <td><code>uint64</code></td> <td><code>uint64</code></td> <td><code>uint64</code></td> <td><code>uint64</code></td> <td><code>uint64</code></td> <td><code>uint64</code></td> <td><code>BigInteger</code></td> <td><code>single</code></td> <td><code>real</code></td> <td><code>decimal</code></td> </tr> <tr> <td><b><code>BigInteger</code></b></td> <td><code>BigInteger</code></td> <td><code>BigInteger</code></td> <td><code>BigInteger</code></td> <td><code>BigInteger</code></td> <td><code>BigInteger</code></td> <td><code>BigInteger</code></td> <td><code>BigInteger</code></td> <td><code>BigInteger</code></td> <td><code>BigInteger</code></td> <td class="auto-style1"> <code>-</code></td> <td class="auto-style1"> <code>-</code></td> <td class="auto-style1"> <code>-</code></td> </tr> <tr> <td><b><code>single</code></b></td> <td><code>single</code></td> <td><code>single</code></td> <td><code>single</code></td> <td><code>single</code></td> <td><code>single</code></td> <td><code>single</code></td> <td><code>single</code></td> <td><code>single</code></td> <td class="auto-style1"> <code>-</code></td> <td><code>single</code></td> <td><code>real</code></td> <td class="auto-style1"> <code>-</code></td> </tr> <tr> <td><b><code>real</code></b></td> <td><code>real</code></td> <td><code>real</code></td> <td><code>real</code></td> <td><code>real</code></td> <td><code>real</code></td> <td><code>real</code></td> <td><code>real</code></td> <td><code>real</code></td> <td class="auto-style1"> <code>-</code></td> <td><code>real</code></td> <td><code>real</code></td> <td class="auto-style1"> <code>-</code></td> </tr> <tr> <td><b><code>decimal</code></b></td> <td><code>decimal</code></td> <td><code>decimal</code></td> <td><code>decimal</code></td> <td><code>decimal</code></td> <td><code>decimal</code></td> <td><code>decimal</code></td> <td><code>decimal</code></td> <td><code>decimal</code></td> <td class="auto-style1"> <code>-</code></td> <td class="auto-style1"> <code>-</code></td> <td> <code>-</code></td> <td><code>decimal</code></td> </tr> </table> <p>То есть, если операнды - целые, то результатом является самый короткий целый тип, требуемый для представления всех получаемых значений. </p> <p>При выполнении бинарной операции с <code>uint64</code> и знаковым целым результирующим типом будет <code>uint64</code>, при этом может произойти переполнение, не вызывающее исключения.</p> <p>Для операции <code>/</code> данная таблица исправляется следующим образом: результат деления любого целого на целое имеет тип <code>real</code>.</p> <p>Для операций <b><code>div</code></b> и <b><code>mod</code></b> выполняются эти же правила, но операнды могут быть только целыми. Правила вычисления операций <b><code>div</code></b> и <b> <code>mod</code></b> - следующие: </p> <blockquote> <p><code>x <b>div</b> y</code> - результат целочисленного деления <code>x</code> на <code>y</code>. Точнее, <code>x <b>div</b> y = x / y</code>, округленное до ближайшего целого по направлению к 0;<code><br> x <b>mod</b> y</code> - остаток от целочисленного деления <code>x</code> на <code>y</code>. Точнее, <code>x <b>mod</b> y = x - (x <b>div</b> y) * y</code>.</p> </blockquote> <p>Унарная арифметическая операция <code>+</code> для любого целого типа возвращает этот тип. Унарная арифметическая операция <code>-</code> возвращает для целых типов, меньших или равных <code>integer</code>, значение типа <code>integer</code>, для <code> longword</code> и <code>int64</code> - значение типа <code>int64</code>, к <code>uint64</code> унарная операция - не применима, для типов <code>single</code> и <code>real</code> - соответственно типы <code> single</code> и <code>real</code>. То есть так же результатом является самый короткий тип, требуемый для представления всех получаемых значений.</p> <p>К <i>арифметическим</i> относится также операция возведения в степень **. Выражение x ** y возвращает:</p> <ul> <li> вещественное значение если операнды - целые или вещественные</li> <li>тип Complex если один из операндов имеет тип Complex</li> <li>тип BigInteger если x имеет тип BigInteger, а y - целый тип. </li> </ul> </body></html>