41c271da (kx 2025-01-05 15:42:39 +0300 1) .TH iatoi 3 "December 27, 2024" "libmpu" "LibMPU Programmer's Manual"
41c271da (kx 2025-01-05 15:42:39 +0300 2) .SH NAME
41c271da (kx 2025-01-05 15:42:39 +0300 3) \fBiatoi\fP, \fBiatoui\fP \- функции перевода ASCII строки в целое число
41c271da (kx 2025-01-05 15:42:39 +0300 4) .SH SYNOPSIS
41c271da (kx 2025-01-05 15:42:39 +0300 5) .nf
41c271da (kx 2025-01-05 15:42:39 +0300 6) .B #include <libmpu.h>
41c271da (kx 2025-01-05 15:42:39 +0300 7) .PP
41c271da (kx 2025-01-05 15:42:39 +0300 8) .BI "void iatoi( mpu_int *" c ", __mpu_char8_t *" str ", int " nb " );
41c271da (kx 2025-01-05 15:42:39 +0300 9) .BI "void iatoui( mpu_int *" c ", __mpu_char8_t *" str ", int " nb " );
41c271da (kx 2025-01-05 15:42:39 +0300 10) .fi
41c271da (kx 2025-01-05 15:42:39 +0300 11) .SH DESCRIPTION
41c271da (kx 2025-01-05 15:42:39 +0300 12) Функции \fBiatoi()\fP, \fBiatoui()\fP предназначены для приведения (конвертации) ASCII\-строки в числовой вид.
41c271da (kx 2025-01-05 15:42:39 +0300 13) В случае функции \fBiatoi()\fP арумент \fBstr\fP рассматривается как указатель на массив символов, содержащий
41c271da (kx 2025-01-05 15:42:39 +0300 14) символы знакового целого числа, в случае \fBiatoui()\fP подразумевается, что строка содержит представление
41c271da (kx 2025-01-05 15:42:39 +0300 15) беззнаковой числовой константы целого типа.
41c271da (kx 2025-01-05 15:42:39 +0300 16) .PP
41c271da (kx 2025-01-05 15:42:39 +0300 17) Числовые константы в строке могут быть представлены как двоичные, восьмеричные, шестнадцатеричные и десятичные
41c271da (kx 2025-01-05 15:42:39 +0300 18) числа. Двоичные числа начинаются с префикса \fB0b\fP или \fB0B\fP, например, \fB0b1011\fP. Восьмеричные числа
41c271da (kx 2025-01-05 15:42:39 +0300 19) должны начинаться с символа '0' и содержать цифры от '0' до '7'. Шестнацатеричные константы начинаются с префикса
41c271da (kx 2025-01-05 15:42:39 +0300 20) \fB0x\fP или \fB0X\fP и могут содержать символы от '0' до '7', а также символы от 'a' до 'f' в любом регистре.
41c271da (kx 2025-01-05 15:42:39 +0300 21) Десятичные константы могут содержать символы от '0' до '9', но не должны начинаться символом '0'. Перед числом
41c271da (kx 2025-01-05 15:42:39 +0300 22) допускаются знаки '+', '-'. Если в строке представлена двоичная, восьмеричная или шестнадцатеричная константа,
41c271da (kx 2025-01-05 15:42:39 +0300 23) то знак игнорируется.
41c271da (kx 2025-01-05 15:42:39 +0300 24) .PP
41c271da (kx 2025-01-05 15:42:39 +0300 25) Результат размещается по адресу \fBc\fP, а параметр \fBnb\fP представляет размер результата \fBc\fP в байтах.
41c271da (kx 2025-01-05 15:42:39 +0300 26) .PP
41c271da (kx 2025-01-05 15:42:39 +0300 27) Если число, представленное в строке \fBstr\fP, не умещается в заданный (\fBnb\fP) формат, то выставляется
41c271da (kx 2025-01-05 15:42:39 +0300 28) флаг переполнения (\fBO\fP).
41c271da (kx 2025-01-05 15:42:39 +0300 29) .PP
41c271da (kx 2025-01-05 15:42:39 +0300 30) Функция воздействует на флаги \fBA\fP, \fBC\fP, \fBO\fP, \fBP\fP, \fBS\fP, \fBZ\fP. Флаги \fBA\fP, \fBC\fP
41c271da (kx 2025-01-05 15:42:39 +0300 31) сбрасываются в 0. Флаг \fBR\fP не изменяется.
41c271da (kx 2025-01-05 15:42:39 +0300 32) .sp
41c271da (kx 2025-01-05 15:42:39 +0300 33) .SH EXAMPLES
41c271da (kx 2025-01-05 15:42:39 +0300 34) .nf
41c271da (kx 2025-01-05 15:42:39 +0300 35) .sp
41c271da (kx 2025-01-05 15:42:39 +0300 36) #include <libmpu.h>
41c271da (kx 2025-01-05 15:42:39 +0300 37) #include <stdio.h>
41c271da (kx 2025-01-05 15:42:39 +0300 38)
41c271da (kx 2025-01-05 15:42:39 +0300 39) int main( void )
41c271da (kx 2025-01-05 15:42:39 +0300 40) {
41c271da (kx 2025-01-05 15:42:39 +0300 41) int rc = 0;
41c271da (kx 2025-01-05 15:42:39 +0300 42)
41c271da (kx 2025-01-05 15:42:39 +0300 43) __mpu_init();
41c271da (kx 2025-01-05 15:42:39 +0300 44) __mpu_extra_warnings = 1;
41c271da (kx 2025-01-05 15:42:39 +0300 45)
41c271da (kx 2025-01-05 15:42:39 +0300 46) {
41c271da (kx 2025-01-05 15:42:39 +0300 47) mpu_int16_t a, b;
41c271da (kx 2025-01-05 15:42:39 +0300 48) int nb = NB_I16;
41c271da (kx 2025-01-05 15:42:39 +0300 49) __mpu_char8_t s[32];
41c271da (kx 2025-01-05 15:42:39 +0300 50)
41c271da (kx 2025-01-05 15:42:39 +0300 51) iatoui( a, "0b11", nb ); /* evaluate the A variable */
41c271da (kx 2025-01-05 15:42:39 +0300 52) iatoi( b, "-3", nb ); /* evaluate the B variable */
41c271da (kx 2025-01-05 15:42:39 +0300 53)
41c271da (kx 2025-01-05 15:42:39 +0300 54) iitoa( s, a, RADIX_DEC, LOWERCASE, nb ); /* convert A value to ASCII string S */
41c271da (kx 2025-01-05 15:42:39 +0300 55) printf( "a = %s;\\n", s ); /* a = 3; */
41c271da (kx 2025-01-05 15:42:39 +0300 56)
41c271da (kx 2025-01-05 15:42:39 +0300 57) iitoa( s, b, RADIX_BIN, LOWERCASE, nb ); /* convert B value to ASCII string S */
41c271da (kx 2025-01-05 15:42:39 +0300 58) printf( "b = %s;\\n", s ); /* b = 0b1111111111111101; */
41c271da (kx 2025-01-05 15:42:39 +0300 59) }
41c271da (kx 2025-01-05 15:42:39 +0300 60)
41c271da (kx 2025-01-05 15:42:39 +0300 61) __mpu_free_context();
41c271da (kx 2025-01-05 15:42:39 +0300 62)
41c271da (kx 2025-01-05 15:42:39 +0300 63) return( rc );
41c271da (kx 2025-01-05 15:42:39 +0300 64) }
41c271da (kx 2025-01-05 15:42:39 +0300 65) .fi
41c271da (kx 2025-01-05 15:42:39 +0300 66) .SH SEE ALSO
41c271da (kx 2025-01-05 15:42:39 +0300 67) .BR iadd(3),
41c271da (kx 2025-01-05 15:42:39 +0300 68) .BR isub(3),
41c271da (kx 2025-01-05 15:42:39 +0300 69) .BR iadc(3),
41c271da (kx 2025-01-05 15:42:39 +0300 70) .BR isbb(3),
41c271da (kx 2025-01-05 15:42:39 +0300 71) .BR ishl(3),
41c271da (kx 2025-01-05 15:42:39 +0300 72) .BR ishr(3),
41c271da (kx 2025-01-05 15:42:39 +0300 73) .BR isal(3),
41c271da (kx 2025-01-05 15:42:39 +0300 74) .BR isar(3),
41c271da (kx 2025-01-05 15:42:39 +0300 75) .BR irol(3),
41c271da (kx 2025-01-05 15:42:39 +0300 76) .BR iror(3),
41c271da (kx 2025-01-05 15:42:39 +0300 77) .BR ircl(3),
41c271da (kx 2025-01-05 15:42:39 +0300 78) .BR ircr(3),
41c271da (kx 2025-01-05 15:42:39 +0300 79) .BR ishln(3),
41c271da (kx 2025-01-05 15:42:39 +0300 80) .BR ishrn(3),
41c271da (kx 2025-01-05 15:42:39 +0300 81) .BR isaln(3),
41c271da (kx 2025-01-05 15:42:39 +0300 82) .BR isarn(3),
41c271da (kx 2025-01-05 15:42:39 +0300 83) .BR iroln(3),
41c271da (kx 2025-01-05 15:42:39 +0300 84) .BR irorn(3),
41c271da (kx 2025-01-05 15:42:39 +0300 85) .BR ircln(3),
41c271da (kx 2025-01-05 15:42:39 +0300 86) .BR ircrn(3),
41c271da (kx 2025-01-05 15:42:39 +0300 87) .BR ineg(3),
41c271da (kx 2025-01-05 15:42:39 +0300 88) .BR inot(3),
41c271da (kx 2025-01-05 15:42:39 +0300 89) .BR iand(3),
41c271da (kx 2025-01-05 15:42:39 +0300 90) .BR itest(3),
41c271da (kx 2025-01-05 15:42:39 +0300 91) .BR icmp(3),
41c271da (kx 2025-01-05 15:42:39 +0300 92) .BR ior(3),
41c271da (kx 2025-01-05 15:42:39 +0300 93) .BR ixor(3),
41c271da (kx 2025-01-05 15:42:39 +0300 94) .BR iinc(3),
41c271da (kx 2025-01-05 15:42:39 +0300 95) .BR idec(3),
41c271da (kx 2025-01-05 15:42:39 +0300 96) .BR ixchg(3),
41c271da (kx 2025-01-05 15:42:39 +0300 97) .BR icpy(3),
41c271da (kx 2025-01-05 15:42:39 +0300 98) .BR icvt(3),
41c271da (kx 2025-01-05 15:42:39 +0300 99) .BR imul(3),
41c271da (kx 2025-01-05 15:42:39 +0300 100) .BR ismul(3),
41c271da (kx 2025-01-05 15:42:39 +0300 101) .BR idiv(3),
41c271da (kx 2025-01-05 15:42:39 +0300 102) .BR isdiv(3),
41c271da (kx 2025-01-05 15:42:39 +0300 103) .BR iitoa(3),
41c271da (kx 2025-01-05 15:42:39 +0300 104) .BR iuitoa(3).