特现C语言编程特点的小代码,itoa,数值转换成字符串
2024-09-26 09:31:05
#define BASE_MAX (26 + 10) char const* itostr(int x, int base)
{
/* map 居中, 支技负余数 */
static char const * const map =
"ZYXWVUTSRQPONMLKJIHGFEDCBA987654321"
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+ (BASE_MAX - 1);
/* 静态缓冲,不支持多线程, 每次调用都覆盖上次的值 */
static char buf[BASE_MAX]; int oldx;
/* 从缓冲尾部逆向使用 */
char* p = buf + sizeof(buf) - ;
/* *p = '\0'; buf 是一个静态数组,默认初始化为0 */ /* 不合法的base返回空串 */
if (base < || base > ) {
return p;
} do {
/* 保存原数,用一次乘法取代取模*/
oldx = x;
x = x / base;
/* 先减后用 */
*--p = map[oldx - x * base];
} while (x); /* 负数的加上符号 */
if (oldx < ) *--p = '-'; return p;
}
最新文章
- PHP进程通信基础——shmop 、sem系列函数使用
- ubuntu安装simplejson模块
- css属性的选择对动画性能的影响
- arcgis flexviewer中由Application向widget传值
- .net常用组件
- UVaLive 6859 Points (几何,凸包)
- Windows store 验证你的 URL http:// 和 https:// ms-appx:/// ms-appdata:///local
- 【Android Developers Training】 49. 轻松录制视频
- ShoneSharp语言(S#)的设计和使用介绍系列(3)— 修炼工具
- Leetcode 143. Reorder List(Medium)
- 机器学习是万能的吗?AI落地有哪些先决条件?
- 一种使用emwin库函数导致hardfault的情况
- 在docker中运行mysql实例
- JavaScript实现限时抢购实例
- C语言中堆内存的开辟和释放与内存处理函数
- 使用开源库 EasyTimeline 操作定时器 NSTimer
- 关于spring框架工作原理的初解
- [Jobdu] 题目1373:整数中1出现的次数(从1到n整数中1出现的次数)
- PEM文件和private.key文件生成IIS服务器所需的pfx文件(配置SSL用)
- 【Linux】Linux修改openfile和max user processes?