1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
|
.\" Copyright 2026 Andrew V.Kosteltsev (kx@radix-linux.su)
.\"
.\"
.TH imod 3 "September 14, 2026" "libmpu" "LibMPU Programmer's Manual"
.SH NAME
\fBimod\fP \- вычисление остатка беззнакового целого числа по модулю
.SH SYNOPSIS
.nf
.B #include <libmpu.h>
.PP
.BI "void imod( mpu_int *" c ", mpu_int *" a ", mpu_int *" b ", int " nb " );"
.fi
.SH DESCRIPTION
Функция \fBimod()\fP вычисляет остаток от беззнакового деления
.sp
.nf
c = a mod b
.fi
.sp
и размещает результат по адресу \fBc\fP. При ненулевом \fBb\fP результат удовлетворяет
условию \fB0 <= c < b\fP. Содержимое памяти по адресам \fBa\fP и \fBb\fP не изменяется,
предыдущее содержимое памяти по адресу \fBc\fP теряется. Параметр \fBnb\fP определяет
размер всех операндов в байтах.
.PP
Если \fBb\fP равно нулю, значение по адресу \fBc\fP не изменяется, выставляется флаг
\fBV\fP (Invalid operation), а переменной \fB__mpu_integer_error_no\fP присваивается
значение \fB__I_ENUMBER__\fP.
.PP
При успешном завершении целочисленные флаги очищаются, а флаг \fBZ\fP выставляется,
если остаток равен нулю.
.sp
.SH EXAMPLES
.nf
.sp
#include <libmpu.h>
#include <stdio.h>
int main( void )
{
mpu_int1024_t c, a, b;
int nb = NB_I1024;
__mpu_char8_t s[4096];
__mpu_init();
iatoui( a, "456", nb );
iatoui( b, "89", nb );
imod( c, a, b, nb );
iuitoa( s, c, RADIX_DEC, LOWERCASE, nb );
printf( "c = %s;\\n", s ); /* c = 11; */
__mpu_free_context();
return( 0 );
}
.fi
.sp
.SH SEE ALSO
.BR iadd(3),
.BR isub(3),
.BR iadc(3),
.BR isbb(3),
.BR ineg(3),
.BR inot(3),
.BR iand(3),
.BR itest(3),
.BR icmp(3),
.BR ior(3),
.BR ixor(3),
.BR iinc(3),
.BR idec(3),
.BR ixchg(3),
.BR icpy(3),
.BR icvt(3),
.BR imul(3),
.BR ismul(3),
.BR idiv(3),
.BR isdiv(3),
.BR iatoi(3),
.BR iatoui(3),
.BR iitoa(3),
.BR iuitoa(3),
.BR _int_digs(3),
.BR ibits_len(3),
.BR igcd(3),
.BR ilcm(3),
.BR imul_mod(3),
.BR ipow_mod(3),
.BR ipowm1_mod(3),
.BR shifts(3),
.BR shifts\-n(3),
.BR circular\-shifts(3),
.BR circular\-shifts\-n(3),
.BR integer\-flags(3),
.BR real\-flags(3),
.BR libmpu(7).
|