C语言itoa函数实现-数字面值转字符串

article/2025/9/28 22:24:25

数字面值转字符串

思路:首先判断是否为负数若是则转为正数,将待转换的int类型值每次对10取余获得最低位的数字,将该数字转为字符面值,然后将int类型值除以10,直到等于0结束循环,此时由于是从int类型值的最低位开始取得,所以转换出来的字符串是反着的,将其逆序即可。


对于32位CPU处理器,int类型的最高位是符号位,为0是正数,为1则是负数。

例如:

  • 正数1,十六进制为:0x00000001,第31位为0,所以是正数。
  • 负数-1,十六进制为:0xFFFFFFFF,第31位为1,所以是负数。

也就是说,正数 = 负数按位取反 + 1,例如:1 = ~(-1) + 1。


代码实现:

char* my_itoa(int value)
{int i = 0, k = 0, size = 0;;static char string[16];char* p = string;/* 负数转正数并添加负号 */if(value >> 31){value = ((~value) + 1);*p++ = '-';}/* 数字转面值字符 */do{p[size++] = value % 10 + '0';value /= 10;}while(value > 0);/* 添加结束符 */p[size] = 0;/* 逆序 */for(i = 0, k = size - 1; i < k; i++, k--){p[i] ^= p[k];p[k] ^= p[i];p[i] ^= p[k];}return string;
}

测试:
在这里插入图片描述


http://chatgpt.dhexx.cn/article/fCSYG7S2.shtml

相关文章

atoi函数和itoa函数以及模拟使用

1.atoi函数 atoi函数的作用是把一个字符串换成一个整型数据&#xff0c;该函数包含于头文件#include<stdlib.h>中。 1.空字符返回数字0&#xff1b; 2.数字字符前有空白字符跳过&#xff1b; 3.数字字符前有、-号&#xff0c;做整数类型的正负处理&#xff1…

itoa函数的实现

itoa的实现 &#xff08;我的编译器是VS2013&#xff09; itoa()函数表示&#xff1a;把一个整形转换为相应的字符串&#xff1b;eg: 整形1234 转换为“1234”&#xff0c;整形-123转换为“-123”。 itoa代码实现 #define _CRT_SECURE_NO_WARNINGS 1 #include<iostream&…

自己编写itoa 函数

库函数将整型转换成字符串有库函数sprintf(“输出到某一缓存区&#xff0c;以什么格式&#xff0c;源目的&#xff09; sprintf 最常见的应用之一是把整数打印到字符串中&#xff0c;所以&#xff0c;spritnf 在大多数场合可以替代itoa。如&#xff1a; 1>把整数123 打印成一…

自己用C语言写itoa 函数和atoi函数

有些库中有atoi()函数&#xff0c;但没有itoa()函数&#xff0c;怎么办&#xff1f;自己写啊&#xff01;&#xff01;&#xff01; 一&#xff1a;先来看看库atoi()函数和itoa()函数的用法&#xff1a; 1.atoi 是把字符串转换成整型数的一个函数&#xff0c;int atoi(const …

C++之sprintf函数(itoa函数)

头文件&#xff1a;stdio.h 原型 int sprintf( char *buffer, const char *format, [ argument] … ); 参数列表 buffer&#xff1a;char型指针&#xff0c;指向将要写入的字符串的缓冲区。 format&#xff1a;格式化字符串。 [argument]…&#xff1a;可选参数&#xff0c;可以…

【c语言】字符串类型转换 | itoa函数的使用

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; 给大家跳段街舞感谢支持&#xff01;ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ …

PostGIS 入门

PostGIS 快速入门 PostGIS 是 PostgreSQL 关系数据库的空间操作扩展。它为 PostgreSQL 提供了存储、查询和修改空间关系的能力。本文中 ‘PostgreSQL’ 指代基本的关系数据库功能&#xff0c;而 ‘PostGIS’ 指代扩展的空间操作特性。 客户端&#xff0d;服务器构架 PostgreSQL…

PostGis路径分析

一、导入数据 建立PostGis数据库。 使用sample数据库做模板。 导入纽约公路矢量图层到PostGis。地图下载位置 二、生成拓扑 要生成最佳路径&#xff0c;首先要生成合法的拓扑。 生成拓扑前&#xff0c;需要添加两个字段&#xff0c;用来存储线段的首尾编号 -- Add "…

4.PostGIS

SELECT ST_GeometryFromText(POINT(116.39088 39.90763),4326); SELECT ST_GeomFromText(POINT(116.39088 39.90763),4326); SELECT ST_PointFromText(POINT(116.39088 39.90763),4326); 1、创建点类型的表&#xff0c;类型不要选择postgresql提供的空间数据类型&#xff0c;…

Postgis使用

Postgis使用 一、安装与配置 先查看目前yum源中有哪些版本可用&#xff0c;并安装合适的版本 yum search postgis安装Postgresql 10对应的版本PostGIS yum install -y postgis24_10二、创建GIS数据库 PostGIS是Postgresql的一个扩展&#xff0c;创建数据库并加载PostGIS扩…

PostGIS 路线规划

❤️通过SQL存储过程&#xff0c;利用PostGIS实现路线规划❤️ pgRouting扩展了PostgreSQL/PostGIS地理空间数据库&#xff0c;以提供地理空间路由功能。 文章目录 1、环境配置2、导入shp文件2.1、打开PostGis Shapefile插件2.2、连接数据库2.3、添加并导入矢量数据2.4、查看数…

postgis启动_PostGIS 快速入门(转)

PostGIS 是 PostgreSQL 关系数据库的空间操作扩展。它为 PostgreSQL 提供了存储、查询和修改空间关系的能力。本文中 ‘PostgreSQL’ 指代基本的关系数据库功能&#xff0c;而 ‘PostGIS’ 指代扩展的空间操作特性。 客户端&#xff0d;服务器构架 PostgreSQL 同众多数据库产品…

postgis 返回 geojson

GeoJSON 特征集合&#xff1a; {"type": "FeatureCollection","features": [{"type": "Feature","geometry": {"type": "Point","coordinates": [102.0, 0.5]},"properties&…

PostGIS 安装

安装 PostgreSQL 数据库 Windows 下载安装包 运行安装包即可 Linux 以 Ubuntu 为例, 其他版本参考官方下载页面 通过 APT 仓库安装 sudo sh -c echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d…

PostGIS安装

1首先安装PostgreSQL &#xff0c;安装完后 services.msc打开服务列表&#xff0c;找到postgresql-x64-14启动&#xff0c;如果启动不了&#xff0c;设置本地系统账户登录 2打开pgAdmin4,创建服务器 参数设置可以参考帮助文档 3安装postgis,下载地址 Index of /postgis/windows…

PostGIS 笔记

空间数据库 定义&#xff1a;存储、操作空间数据的数据库。 空间数据特点 空间数据类型是指点、线、多边形等形状&#xff1b;提供用于空间操作的高效处理的多维空间索引&#xff1b;提供用于查询空间属性和关系额空间函数。 发展历程 第1代 在传统的 GIS 实施中&#xff0c;所…

PostGIS

一、ArcGISPostGIS 打开ArcCatalog目录&#xff0c;双击添加数据库连接&#xff0c;进入数据库连接窗口。数据库类型选择PostgreSQL&#xff0c;输入实例&#xff08;安装PostgreSQL的服务器名称或IP地址&#xff09;、用户名、密码&#xff0c;以上信息无误&#xff0c;点击数…

PostGIS的安装与初步使用

想学习postgis推荐看我翻译的官方教程文档&#xff1a;https://blog.csdn.net/qq_35732147/article/details/85256640 目录 一、安装PostGIS 1.下载安装程序 2.安装PostgreSQL 二、创建空间数据库 1.打开pgAdmin 4 2.登录到服务器 3.创建空间数据库 三、导入空间数据 1.获取…

PostGIS(1):PostGIS概述

作为对象关系型数据库PostGreSQL的拓展模块&#xff0c;PostGIS可用于存储GIS数据&#xff0c;并提供了对基于GiST的R树索引支持、以及面向GIS对象的分析和处理相关的函数。 以下是PostGIS官网对其特征的介绍&#xff0c; &#xff08;1&#xff09; 先看一下百度对PostGIS的介…

PostGIS总结

PostGreSQL&#xff08;三&#xff09;PostGISPostGreSQL&#xff08;四&#xff09;PostGIS-空间数据存储PostGreSQL&#xff08;五&#xff09;PostGIS-常用函数PostGreSQL&#xff08;六&#xff09;PostGIS-空间连接和空间索引PostGreSQL&#xff08;七&#xff09;PostGIS…