MtFmt 1.0.0
MtFmt is a format library on embed. system and wrote by pure C.
载入中...
搜索中...
未找到
宏定义 | 函数
mm_into.c 文件参考

格式化的函数实现, 不包括浮点数 更多...

#include "mm_fmt.h"
#include "mm_type.h"

宏定义

#define MSTR_IMP_SOURCES   1
 

函数

static mstr_result_t convert_sign_helper (MString *str, int32_t value, MStrFmtSignDisplay sign)
 转换符号
 
static mstr_result_t uqtoa_impl (MString *str, uint32_t value, uint32_t quat)
 量化值的格式化实现
 
static mstr_result_t uqtoa_helper_dpart (MString *str, uint32_t value, uint32_t quat)
 转换量化值的小数部分
 
static mstr_result_t utoa_impl_2base (MString *str, uint32_t index, char hex_base, uint32_t value)
 utoa在index等于2, 8, 16的时候的实现
 
static mstr_result_t utoa_impl_10base (MString *str, uint32_t value)
 utoa在index等于10的时候的实现
 
static mstr_result_t bcdtoa (MString *str, uint32_t bcd, uint32_t len, uint32_t max_len, mstr_bool_t fixed)
 BCD值转换为字符串
 
static void div_mod_10 (uint32_t x, uint32_t *div, uint32_t *rem)
 返回: div = x / 10; rem = x % 10
 
static void div_mod_10_u64 (uint64_t x, uint64_t *div, uint32_t *rem)
 返回: div = x / 10; rem = x % 10
 
static uint32_t abs_u32 (int32_t x)
 计算|x|
 
 mstr_fmt_itoa (MString *str, int32_t value, MStrFmtIntIndex index, MStrFmtSignDisplay sign)
 将有符号整数转换为字符串
 
 mstr_fmt_utoa (MString *res_str, uint32_t value, MStrFmtIntIndex index)
 将无符号整数转换为字符串
 
 mstr_fmt_iqtoa (MString *res_str, int32_t value, uint32_t quat, MStrFmtSignDisplay sign)
 将有符号量化值转换为字符串
 
 mstr_fmt_uqtoa (MString *res_str, uint32_t value, uint32_t quat)
 将无符号量化值转换为字符串
 
 mstr_fmt_ttoa (MString *res_str, const MStrTime *tm, const MStrFmtChronoFormatSpec *spec)
 将日期时间值转换为字符串
 

详细描述

格式化的函数实现, 不包括浮点数

作者
向阳 (hinat.nosp@m.a.ho.nosp@m.shino.nosp@m.@fox.nosp@m.mail..nosp@m.com)
版本
1.0
日期
2023-03-24

宏定义说明

◆ MSTR_IMP_SOURCES

#define MSTR_IMP_SOURCES   1

函数说明

◆ abs_u32()

static uint32_t abs_u32 ( int32_t  x)
static

计算|x|

◆ bcdtoa()

static mstr_result_t bcdtoa ( MString str,
uint32_t  bcd,
uint32_t  len,
uint32_t  max_len,
mstr_bool_t  fixed 
)
static

BCD值转换为字符串

参数
[out]str字符串输出
[in]bcdBCD码, 最多16位(4个十进制位)
[in]len期望转换的长度, 1 ~ 4
[in]max_len预期最大进行的转换长度, 1 ~ 4
[in]fixed是否补0

◆ convert_sign_helper()

static mstr_result_t convert_sign_helper ( MString str,
int32_t  value,
MStrFmtSignDisplay  sign 
)
static

转换符号

参数
[out]str转换结果
[in]value转换值
[in]sign符号的显示方式

◆ div_mod_10()

static void div_mod_10 ( uint32_t  x,
uint32_t *  div,
uint32_t *  rem 
)
static

返回: div = x / 10; rem = x % 10

◆ div_mod_10_u64()

static void div_mod_10_u64 ( uint64_t  x,
uint64_t *  div,
uint32_t *  rem 
)
static

返回: div = x / 10; rem = x % 10

◆ mstr_fmt_iqtoa()

mstr_fmt_iqtoa ( MString res_str,
int32_t  value,
uint32_t  quat,
MStrFmtSignDisplay  sign 
)

将有符号量化值转换为字符串

参数
[out]res_str转换结果
[in]value需要转换的值
[in]quat量化精度
[in]sign符号的显示方式

◆ mstr_fmt_itoa()

mstr_fmt_itoa ( MString str,
int32_t  value,
MStrFmtIntIndex  index,
MStrFmtSignDisplay  sign 
)

将有符号整数转换为字符串

参数
[out]res_str转换结果
[in]value需要转换的值
[in]indexIndex
[in]sign符号的显示方式

◆ mstr_fmt_ttoa()

mstr_fmt_ttoa ( MString res_str,
const MStrTime tm,
const MStrFmtChronoFormatSpec spec 
)

将日期时间值转换为字符串

参数
[out]res_str转换结果
[in]tm日期时间值
[in]spec格式化信息

◆ mstr_fmt_uqtoa()

mstr_fmt_uqtoa ( MString res_str,
uint32_t  value,
uint32_t  quat 
)

将无符号量化值转换为字符串

参数
[out]res_str转换结果
[in]value需要转换的值
[in]quat量化精度

◆ mstr_fmt_utoa()

mstr_fmt_utoa ( MString res_str,
uint32_t  value,
MStrFmtIntIndex  index 
)

将无符号整数转换为字符串

参数
[out]res_str转换结果
[in]value需要转换的值
[in]indexIndex

◆ uqtoa_helper_dpart()

static mstr_result_t uqtoa_helper_dpart ( MString str,
uint32_t  value,
uint32_t  quat 
)
static

转换量化值的小数部分

◆ uqtoa_impl()

static mstr_result_t uqtoa_impl ( MString str,
uint32_t  value,
uint32_t  quat 
)
static

量化值的格式化实现

注意
最大支持的quat值是31, 外部需要保证参数正确

◆ utoa_impl_10base()

static mstr_result_t utoa_impl_10base ( MString str,
uint32_t  value 
)
static

utoa在index等于10的时候的实现

◆ utoa_impl_2base()

static mstr_result_t utoa_impl_2base ( MString str,
uint32_t  index,
char  hex_base,
uint32_t  value 
)
static

utoa在index等于2, 8, 16的时候的实现

注解
使用 hex_base 来指定是从 'a' 开始序列化还是 'A' 开始