Dynamic Fraction Library 1.0.0
Reference-counted arbitrary precision rational number library (MIT OR Unlicense)
Loading...
Searching...
No Matches
Functions
Conversion Operations

Functions for converting between integer types and representations. More...

Functions

bool di_to_int32 (di_int big, int32_t *result)
 Convert integer to 32-bit signed integer.
 
bool di_to_int64 (di_int big, int64_t *result)
 Convert integer to 64-bit signed integer.
 
bool di_to_uint32 (di_int big, uint32_t *result)
 Convert integer to 32-bit unsigned integer.
 
bool di_to_uint64 (di_int big, uint64_t *result)
 Convert integer to 64-bit unsigned integer.
 
double di_to_double (di_int big)
 Convert integer to double precision floating point.
 
char * di_to_string (di_int big, int base)
 Convert integer to string representation.
 

Detailed Description

Functions for converting between integer types and representations.

Function Documentation

◆ di_to_double()

double di_to_double ( di_int  big)

Convert integer to double precision floating point.

Parameters
bigInteger to convert (may be NULL)
Returns
Double representation of integer, or 0.0 if big is NULL
Since
1.0.0
Note
May lose precision for very large integers
NULL integers return 0.0

Definition at line 1491 of file dynamic_int.h.

◆ di_to_int32()

bool di_to_int32 ( di_int  big,
int32_t *  result 
)

Convert integer to 32-bit signed integer.

Parameters
bigInteger to convert (may be NULL)
resultPointer to store result
Returns
true if conversion successful and no overflow, false otherwise
Since
1.0.0
int32_t value;
if (di_to_int32(big, &value)) {
printf("Value: %d\n", value);
} else {
printf("Overflow!\n");
}
di_release(&big);
struct di_int_internal * di_int
Integer handle for arbitrary precision integers.
bool di_to_int32(di_int big, int32_t *result)
Convert integer to 32-bit signed integer.
di_int di_from_int32(int32_t value)
Create a new integer from a 32-bit signed integer.
void di_release(di_int *big)
Decrement reference count and free if zero.

Definition at line 1378 of file dynamic_int.h.

◆ di_to_int64()

bool di_to_int64 ( di_int  big,
int64_t *  result 
)

Convert integer to 64-bit signed integer.

Parameters
bigInteger to convert (may be NULL)
resultPointer to store result
Returns
true if conversion successful and no overflow, false otherwise
Since
1.0.0

Definition at line 1406 of file dynamic_int.h.

◆ di_to_string()

char * di_to_string ( di_int  big,
int  base 
)

Convert integer to string representation.

Parameters
bigInteger to convert (may be NULL)
baseNumber base (2-36)
Returns
Dynamically allocated string (caller must free), or NULL on failure
Since
1.0.0
di_int big = di_from_int32(-42);
char* str = di_to_string(big, 10);
printf("Value: %s\n", str); // Value: -42
free(str);
di_release(&big);
char * di_to_string(di_int big, int base)
Convert integer to string representation.
Note
Currently only base 10 is implemented
Caller is responsible for freeing returned string

Definition at line 1650 of file dynamic_int.h.

◆ di_to_uint32()

bool di_to_uint32 ( di_int  big,
uint32_t *  result 
)

Convert integer to 32-bit unsigned integer.

Parameters
bigInteger to convert (may be NULL)
resultPointer to store result
Returns
true if conversion successful and no overflow/underflow, false otherwise
Since
1.0.0

Definition at line 1437 of file dynamic_int.h.

◆ di_to_uint64()

bool di_to_uint64 ( di_int  big,
uint64_t *  result 
)

Convert integer to 64-bit unsigned integer.

Parameters
bigInteger to convert (may be NULL)
resultPointer to store result
Returns
true if conversion successful and no overflow/underflow, false otherwise
Since
1.0.0

Definition at line 1467 of file dynamic_int.h.