.TH iatoi 3 "December 27, 2024" "libmpu" "LibMPU Programmer's Manual"
.SH NAME
\fBiatoi\fP, \fBiatoui\fP \- функции перевода ASCII строки в целое число
.SH SYNOPSIS
.nf
.B #include <libmpu.h>
.PP
.BI "void iatoi( mpu_int *" c ", __mpu_char8_t *" str ", int " nb " );
.BI "void iatoui( mpu_int *" c ", __mpu_char8_t *" str ", int " nb " );
.fi
.SH DESCRIPTION
Функции \fBiatoi()\fP, \fBiatoui()\fP предназначены для приведения (конвертации) ASCII\-строки в числовой вид.
В случае функции \fBiatoi()\fP арумент \fBstr\fP рассматривается как указатель на массив символов, содержащий
символы знакового целого числа, в случае \fBiatoui()\fP подразумевается, что строка содержит представление
беззнаковой числовой константы целого типа.
.PP
Числовые константы в строке могут быть представлены как двоичные, восьмеричные, шестнадцатеричные и десятичные
числа. Двоичные числа начинаются с префикса \fB0b\fP или \fB0B\fP, например, \fB0b1011\fP. Восьмеричные числа
должны начинаться с символа '0' и содержать цифры от '0' до '7'. Шестнацатеричные константы начинаются с префикса
\fB0x\fP или \fB0X\fP и могут содержать символы от '0' до '7', а также символы от 'a' до 'f' в любом регистре.
Десятичные константы могут содержать символы от '0' до '9', но не должны начинаться символом '0'. Перед числом
допускаются знаки '+', '-'. Если в строке представлена двоичная, восьмеричная или шестнадцатеричная константа,
то знак игнорируется.
.PP
Результат размещается по адресу \fBc\fP, а параметр \fBnb\fP представляет размер результата \fBc\fP в байтах.
.PP
Если число, представленное в строке \fBstr\fP, не умещается в заданный (\fBnb\fP) формат, то выставляется
флаг переполнения (\fBO\fP).
.PP
Функция воздействует на флаги \fBA\fP, \fBC\fP, \fBO\fP, \fBP\fP, \fBS\fP, \fBZ\fP. Флаги \fBA\fP, \fBC\fP
сбрасываются в 0. Флаг \fBR\fP не изменяется.
.sp
.SH EXAMPLES
.nf
.sp
#include <libmpu.h>
#include <stdio.h>
int main( void )
{
int rc = 0;
__mpu_init();
__mpu_extra_warnings = 1;
{
mpu_int16_t a, b;
int nb = NB_I16;
__mpu_char8_t s[32];
iatoui( a, "0b11", nb ); /* evaluate the A variable */
iatoi( b, "-3", nb ); /* evaluate the B variable */
iitoa( s, a, RADIX_DEC, LOWERCASE, nb ); /* convert A value to ASCII string S */
printf( "a = %s;\\n", s ); /* a = 3; */
iitoa( s, b, RADIX_BIN, LOWERCASE, nb ); /* convert B value to ASCII string S */
printf( "b = %s;\\n", s ); /* b = 0b1111111111111101; */
}
__mpu_free_context();
return( rc );
}
.fi
.SH SEE ALSO
.BR iadd(3),
.BR isub(3),
.BR iadc(3),
.BR isbb(3),
.BR ishl(3),
.BR ishr(3),
.BR isal(3),
.BR isar(3),
.BR irol(3),
.BR iror(3),
.BR ircl(3),
.BR ircr(3),
.BR ishln(3),
.BR ishrn(3),
.BR isaln(3),
.BR isarn(3),
.BR iroln(3),
.BR irorn(3),
.BR ircln(3),
.BR ircrn(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 iitoa(3),
.BR iuitoa(3).