Функция выполняет побайтовое сложение двух чисел, с переполнением. Складывать можно два числа абсолютно любой длины (если используются числовые значения для аргументов, они должны укладываться в пределы от 0 до 2147483647).
$args[
- первое число (сколько угодно длинное), можно 0
] args[
(ограниченное значение).
0
]$args[
- второе число (сколько угодно длинное), можно 1
] args[
(ограниченное значение).
1
]
Если один из рагументов содержит запрещённые символы, т.е. не является числом в строковом или числовом представлении, функция вернёт [not a number]
в результат.
Использует функцию em.zero
.
Суммирует два целых числа любой длины по следующим правилам:
Количество байтов в одном слове может быть больше, чем в другом. В таком случае слово с меньшим количеством байтов приводится к длине слова с большим количеством байтов.
Байты нумеруются справа налево! По разрядам, начиная с нулевого.
Если при суммировании байтов на одном разряде происходит переполнение, т.е. число оказывается больше одного разряда, лишний разряд переносится на следующий байт. Пример:
В случае если переполнение происходит на суммировании последних байтов, лишний разряд переносится на нулевой байт Суммы. Пример:
$args[
- уменьшаемое (любой длины), можно 0
] args[
(ограниченное значение).
0
]$args[
- вычитаемое (любой длины), можно 1
] args[
(ограниченное значение).
1
]
Результат - текстовое значение (слово Сумма) без потери разрядов.
Использует функцию em.zero
.
Побайтовое вычитание. Вычитает из одного числа другое. Оба числа приводятся к одной длине по аналогии с em.byte.add
.
Далее происходит поразрядное вычитание. Причём если в результате получается отрицательное число в байт записывается 10+число, в следующий разряд переносится -1.
Пример:
Если отрицательное число получается на последнем байте последний байт вычисляется по общим правилам, а из нулевого байта Суммы вычитается 1.
Aleks Versus'Easy Libraries'2013-2024
Aleks Versus'Game Adventure Making'Really Unimaginable Stories'2013-2024