My Project
Loading...
Searching...
No Matches
C_lib
include_printf
az_itoa.c
Go to the documentation of this file.
1
// kernel_lib_printf_functions
2
/*
3
* Kernel Lib Printf Functions
4
*
5
* Maintainer: Park Jiwoo
6
*
7
* Copyright (C) 2024 Park-Jiwoo
8
*
9
*/
10
#include "
kernel_pr_he.h
"
11
12
static
int
az_pow(
int
nb,
int
pow)
13
{
14
if
(pow == 0)
15
return
(1);
16
else
17
return
(nb * az_pow(nb, pow - 1));
18
}
19
20
char
*
az_itoa
(
int
value,
int
base)
21
{
22
int
i;
23
char
*nbr;
24
int
neg;
25
26
// 10진수
27
// base = 10..
28
29
i = 1;
30
neg = 0;
31
if
(value < 0)
32
{
33
if
(base == 10)
34
neg = 1;
35
value *= -1;
36
}
37
38
while
(az_pow(base, i) - 1 < value)
39
i++;
40
41
nbr = (
char
*)malloc(
sizeof
(nbr) * i);
42
43
nbr[i + neg] =
'\0'
;
44
45
while
(i-- > 0)
46
{
47
nbr[i + neg] = (value % base) + (value % base > 9 ?
'A'
- 10 :
'0'
);
48
value = value / base;
49
}
50
if
(neg)
51
nbr[0] =
'-'
;
52
53
return
(nbr);
54
}
az_itoa
char * az_itoa(int value, int base)
Definition
az_itoa.c:20
kernel_pr_he.h
Generated by
1.12.0