php-internal-docs
8.4.8
Unofficial docs for php/php-src
Loading...
Searching...
No Matches
int2num.c
Go to the documentation of this file.
1
/* int2num.c: bcmath library file. */
2
/*
3
Copyright (C) 1991, 1992, 1993, 1994, 1997 Free Software Foundation, Inc.
4
Copyright (C) 2000 Philip A. Nelson
5
6
This library is free software; you can redistribute it and/or
7
modify it under the terms of the GNU Lesser General Public
8
License as published by the Free Software Foundation; either
9
version 2 of the License, or (at your option) any later version.
10
11
This library is distributed in the hope that it will be useful,
12
but WITHOUT ANY WARRANTY; without even the implied warranty of
13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
Lesser General Public License for more details. (LICENSE)
15
16
You should have received a copy of the GNU Lesser General Public
17
License along with this library; if not, write to:
18
19
The Free Software Foundation, Inc.
20
59 Temple Place, Suite 330
21
Boston, MA 02111-1307 USA.
22
23
You may contact the author by:
24
e-mail: philnelson@acm.org
25
us-mail: Philip A. Nelson
26
Computer Science Department, 9062
27
Western Washington University
28
Bellingham, WA 98226-9062
29
30
*************************************************************************/
31
32
#include "
bcmath.h
"
33
34
/* Convert an integer VAL to a bc number NUM. */
35
36
void
bc_int2num
(
bc_num
*num,
int
val
)
37
{
38
char
buffer
[30];
39
char
*bptr, *vptr;
40
int
ix = 1;
41
char
neg = 0;
42
43
/* Sign. */
44
if
(
val
< 0) {
45
neg = 1;
46
val
= -
val
;
47
}
48
49
/* Get things going. */
50
bptr =
buffer
;
51
*bptr++ =
val
%
BASE
;
52
val
=
val
/
BASE
;
53
54
/* Extract remaining digits. */
55
while
(
val
!= 0) {
56
*bptr++ =
val
%
BASE
;
57
val
=
val
/
BASE
;
58
/* Count the digits. */
59
ix++;
60
}
61
62
/* Make the number. */
63
bc_free_num
(num);
64
*num =
bc_new_num
(ix, 0);
65
if
(neg) {
66
(*num)->n_sign =
MINUS
;
67
}
68
69
/* Assign the digits. */
70
vptr = (*num)->n_value;
71
while
(ix-- > 0) {
72
*vptr++ = *--bptr;
73
}
74
}
bcmath.h
bc_num
struct bc_struct * bc_num
Definition
bcmath.h:39
BASE
#define BASE
Definition
bcmath.h:63
bc_free_num
#define bc_free_num(num)
Definition
bcmath.h:187
MINUS
@ MINUS
Definition
bcmath.h:37
bc_new_num
#define bc_new_num(length, scale)
Definition
bcmath.h:185
val
zval * val
Definition
ffi.c:4262
bc_int2num
void bc_int2num(bc_num *num, int val)
Definition
int2num.c:36
buffer
Definition
file.h:177
ext
bcmath
libbcmath
src
int2num.c
Generated on Sat Aug 23 2025 01:46:05 for php-internal-docs by
1.13.2