Книга: Описание языка PascalABC.NET
Арифметические операции
Арифметические операции
К арифметическим относятся бинарные операции +, -, *, / для вещественных и целых чисел, бинарные операции div и mod для целых чисел и унарные операции + и - для вещественных и целых чисел. Тип выражения x op y, где op - знак бинарной операции +, - или *, определяется из следующей таблицы:
shortint |
byte |
smallint |
word |
integer |
longword |
int64 |
uint64 |
BigInteger |
single |
real |
|
shortint |
integer |
integer |
integer |
integer |
integer |
int64 |
int64 |
uint64 |
BigInteger |
single |
real |
byte |
integer |
integer |
integer |
integer |
integer |
longword |
int64 |
uint64 |
BigInteger |
single |
real |
smallint |
integer |
integer |
integer |
integer |
integer |
int64 |
int64 |
uint64 |
BigInteger |
single |
real |
word |
integer |
integer |
integer |
integer |
integer |
longword |
int64 |
uint64 |
BigInteger |
single |
real |
integer |
integer |
integer |
integer |
integer |
integer |
int64 |
int64 |
uint64 |
BigInteger |
single |
real |
longword |
int64 |
longword |
int64 |
longword |
int64 |
longword |
uint64 |
uint64 |
BigInteger |
single |
real |
int64 |
int64 |
int64 |
int64 |
int64 |
int64 |
uint64 |
int64 |
uint64 |
BigInteger |
single |
real |
uint64 |
uint64 |
uint64 |
uint64 |
uint64 |
uint64 |
uint64 |
uint64 |
uint64 |
BigInteger |
single |
real |
BigInteger |
BigInteger |
BigInteger |
BigInteger |
BigInteger |
BigInteger |
BigInteger |
BigInteger |
BigInteger |
BigInteger |
- |
- |
single |
single |
single |
single |
single |
single |
single |
single |
single |
- |
single |
real |
real |
real |
real |
real |
real |
real |
real |
real |
real |
- |
real |
real |
То есть, если операнды - целые, то результатом является самый короткий целый тип, требуемый для представления всех получаемых значений.
При выполнении бинарной операции с uint64 и знаковым целым результирующим типом будет uint64, при этом может произойти переполнение, не вызывающее исключения.
Для операции / данная таблица исправляется следующим образом: результат деления любого целого на целое имеет тип real.
Для операций div и mod выполняются эти же правила, но операнды могут быть только целыми. Правила вычисления операций div и mod - следующие:
x div y - результат целочисленного деления x на y. Точнее, x div y = x / y, округленное до ближайшего целого по направлению к 0;
x mod y - остаток от целочисленного деления x на y. Точнее, x mod y = x - (x div y) * y.
Унарная арифметическая операция + для любого целого типа возвращает этот тип. Унарная арифметическая операция - возвращает для целых типов, меньших или равных integer, значение типа integer, для longword и int64 - значение типа int64, к uint64 унарная операция - не применима, для типов single и real - соответственно типы single и real. То есть так же результатом является самый короткий тип, требуемый для представления всех получаемых значений.
- Арифметические операторы
- 2.2. Арифметические операции над числами, представленными в различных системах счисления
- А6.5. Арифметические преобразования
- ПРИЛОЖЕНИЕ В. ОПЕРАЦИИ ЯЗЫКА СИ
- 3.1.3. Арифметические операции в JavaScript
- I. Арифметические операции
- Пример 8-2. Арифметические операции
- Пример 11-8. Команда let, арифметические операции.
- 2.2.3 Арифметические операции