Math Processor Unit Library

libmpu – library of arithmetic functions for integer, real, and complex numbers of increased digit capacity

16 Commits   0 Branches   2 Tags
.TH iitoa 3  "December 27, 2024" "libmpu" "LibMPU Programmer's Manual"
.SH NAME
\fBiitoa\fP, \fBiuitoa\fP \- функции перевода целого числа в ASCII строку
.SH SYNOPSIS
.nf
.B #include <libmpu.h>
.PP
.BI "void iitoa( __mpu_char8_t *" str ", mpu_int *" a ", int " radix ", int " uf ", int " nb " );
.BI "void iuitoa( __mpu_char8_t *" str ", mpu_int *" a ", int " radix ", int " uf ", int " nb " );
.fi
.SH DESCRIPTION
Функции \fBiitoa()\fP, \fBiuitoa()\fP осуществляют преобразование целой переменной, расположенной
по адресу \fBa\fP, в строковую константу. Основание системы счисления выбирается согласно значению
параметра \fBradix\fP. Допустимые основания представлены в заголовочном файле \fBlibmpu.h\fP:
.nf
.sp
#define RADIX_BIN  2
#define RADIX_OCT  8
#define RADIX_DEC 10
#define RADIX_HEX 16
.fi
.sp
Если выбрано основание \fBRADIX_BIN\fP или \fBRADIX_HEX\fP, то дополнительно можно выбрать регистр
представления префикса с помощью параметра \fBuf\fP, допустимые значения которого:
.nf
.sp
#define LOWERCASE  0
#define UPPERCASE  1
.fi
.sp
также представлены в заголовочном файле \fBlibmpu.h\fP.
.PP
Параметр \fBnb\fP определяет размер переменной \fBa\fP в байтах.
.PP
Функции \fBiitoa()\fP, \fBiuitoa()\fP не влияют на флаги.
.PP
Размер памяти, выделенной под указателем \fBstr\fP, должен быть достаточен для размещения результирующей
строковой константы.
.PP
Функция \fBiitoa()\fP подразумевает, что переменная \fBa\fP является знаковой, а функция \fBiuitoa()\fP
рассматривает аргумент \fBa\fP как беззнаковое целое число. Так, например, двоичное 8\-разрядное целое
\fB0b10000000\fP функцией \fBiitoa()\fP будет переведено в строку "\-128", в то время как функция \fBiuitoa()\fP
выведет положительное число "128".
.sp
.SH EXAMPLES
.nf
.sp
#include <libmpu.h>
#include <stdio.h>

int main( void )
{
  int  rc = 0;

  __mpu_init();
  __mpu_extra_warnings = 1;

  {
    mpu_int8_t     a;
    int            nb = NB_I8;
    __mpu_char8_t  s[32];

    iatoui( a, "0b10000000", nb ); /* evaluate the A variable */

    iitoa( s, a, RADIX_DEC, LOWERCASE, nb ); /* convert A value to ASCII string S */
    printf( "a = %s;\\n", s ); /* a = -128; */

    iuitoa( s, a, RADIX_DEC, LOWERCASE, nb ); /* convert A value to ASCII string S */
    printf( "a = %s;\\n", s ); /* a =  128; */
  }

  __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 iatoi(3),
.BR iatoui(3).