高效实现整型数字转字符串int2str的方法
将数字转换成字符串有很多方法,现在给出一种高效的实现方法。开阔眼界。
char* int2str(unsigned int values) { const char digits[11] = "0123456789"; char* crtn = new char[32]; crtn += 31; *crtn = '\0'; do { *--crtn = digits[values%10]; } while (values /= 10); return crtn; }
以上是没有考虑那么一点点空间的问题;如果考虑那点空间问题,可以这样做。
char* int2str(unsigned int values) { int len = 0; const char digits[11] = "0123456789"; unsigned int tvalue = values; while(tvalue >= 100) { tvalue /= 100; len += 2; } if (tvalue > 10) len += 2; else if(tvalue > 0) len++; char* crtn = new char[len+1]; crtn += len; *crtn = '\0'; do { *--crtn = digits[values%10]; } while (values /= 10); return crtn; }
同样,带符号的整数一样的做法。
以上这篇高效实现整型数字转字符串int2str的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
C#中将字符串转换为整型的三种解决方法总结
在C#中,要将一个字符串或浮点数转换为整数,基本上有三种方法:(1)使用强制类型转换:(int)浮点数 (2)使用Convert.ToInt32(string)(3)使用int.Parse(string)或int.TryParse(string,out int) 在实际使用时,当要转换的字符串或数字带有小数时,发现它们有以下区别:(1)方法一:截断 方法二:四舍五入int a=(int)2.8; //结果为2int b=Convert.ToInt32(2.8); //b的值为3(2)int.P
-
C#中把字符串String转换为整型Int的小例子
本文介绍如何在使用C#开发程序时,将一个字符串String变量的值转换为一个整型Int变量. 比如,我们在C#中定义一个字符串变量,用它来获取一个xml中的值.小编这里并不是故意要用一个字符串去获取xml节点的值,而是使用InnerText的方式获取的值必须是字符串String类型的. 复制代码 代码如下: string tmpValue = ""; tmpValue = xml.DocumentElement["expirydays"].InnerText.Tri
-
C语言中字符串和数字的相互转换实现代码
1.数字转换为字符串sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出.sprintf 是个变参函数,定义如下: int sprintf( char *buffer, const char *format [, argument] ... ); 除了前两个参数类型固定外,后面可以接任意多个参数.printf 和sprintf 都使用格式化字符串来指定串的格式,在格式串内部使用一些以"%"开头的格式说明符(format
-
高效实现整型数字转字符串int2str的方法
将数字转换成字符串有很多方法,现在给出一种高效的实现方法.开阔眼界. char* int2str(unsigned int values) { const char digits[11] = "0123456789"; char* crtn = new char[32]; crtn += 31; *crtn = '\0'; do { *--crtn = digits[values%10]; } while (values /= 10); return crtn; } 以上是没有考虑那么
-
JAVA中字符串如何与整型数字相加
package kece; public class JavaAppArguments { public static void main(String[] args){ System.out.println("参数个数:"+args.length); int sum=0;//定义初始相加和等于零 for(String arg:args){//将string类型强制转化为整形 sum=sum+Integer.parseInt(arg);//将字符串改为整形 System.out.pri
-
PHP中IP地址与整型数字互相转换详解
IP转换成整型存储是数据库优化一大趋势,不少人目前存储IP时还在使用字符串类型存储,字符串索引比整型索引消耗资源很多,特别是表中数据量大的时候,以及求查询某一个ip段的数据,今天说的ip是指ip4,ip6不在本文范围内. 系统函数ip2long与long2ip PHP中有内置函数ip2long可以将ip地址转换整型. 复制代码 代码如下: $ip = '210.110.11.49'; echo ip2long($ip); 输出: 复制代码 代码如下: -764540111 输出的整型有负号是因为
-
C++实现将长整型数转换为字符串的示例代码
C++实现将长整型数转换为字符串 /* * Created by Chimomo */ #include <iostream> using namespace std; char *convertLongToStr(long L) { int i = 1; int n = 1; while (!(L / i < 10)) { i *= 10; ++n; } char *str = (char *) malloc(n * sizeof(char)); int j = 0; while (L
-
js中字符型和数值型数字的互相转化方法(必看)
数值型的数字字符型数字之间如何互相转化呢,其实有个很简便的方法: 比如字符串"123.45"和数值型123.45. 字符串型只要在前面加个+好就可以了. 数值型只要在后面加个空字符串""就可以了. 上图: 以上这篇js中字符型和数值型数字的互相转化方法(必看)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.
-
Java整型数与网络字节序byte[]数组转换关系详解
本文实例讲述了Java整型数与网络字节序byte[]数组转换关系.分享给大家供大家参考,具体如下: 工作项目需要在java和c/c++之间进行socket通信,socket通信是以字节流或者字节包进行的,socket发送方须将数据转换为字节流或者字节包,而接收方则将字节流和字节包再转换回相应的数据类型.如果发送方和接收方都是同种语言,则一般只涉及到字节序的调整.而对于java和c/c++的通信,则情况就要复杂一些,主要是因为java中没有unsigned类型,并且java和c在某些数据类型上的长
-
C语言深入探究sizeof与整型数据存储及数据类型取值范围
目录 1.关键字sizeof 2.整型数据存储深入 3.数据类型取值范围深入 1.关键字sizeof sizeof 与 strlen 是我们日常打代码时经常使用到的两个“工具”.前者是求变量或者类型的大小(单位为字节),后者是求某一字符串的长度.我们很容易产生这样一个误解,即把 sizeof 和 strlen 归为函数一类.事实上 sizeof 并不是一个函数,它是一个操作符.关键字.我们通过一段代码证明它不是函数: #include <stdio.h> int main() { int n
-
MySQL整型数据溢出的解决方法
今天接到一个朋友电话说是觉的数据库被别人更改了,出现数据不对的问题 .经过很久的排查是数据类型溢出了(发生问题的版本是MySQL 5.1).后来通过给朋友那边把MySQL 5.1升级到MySQL 5.5去解决这个问题. 这也让我有兴趣去了解一下MySQL不同版本数据类型溢出的处理机制. 先看一下MySQL支持的整型数及大小,存储空间: pe Storage Minimum Value Maximum Value 存储大小 (Bytes) (Signed/Unsigned) (Signed/U
-
关于MySQL的整型数据的内存溢出问题的应对方法
今天接到一个朋友电话说是觉的数据库被别人更改了,出现数据不对的问题 .经过很久的排查是数据类型溢出了(发生问题的版本是MySQL 5.1).后来通过给朋友那边把MySQL 5.1升级到MySQL 5.5去解决这个问题. 这也让我有兴趣去了解一下MySQL不同版本数据类型溢出的处理机制. 先看一下MySQL支持的整型数及大小,存储空间: 另外请记着mysql的数据处理会转成bigint处理,所以这里就用bigint几个测试: SELECTCAST(0ASUNSIGNED)-1; SELECT922
-
java 整型数与Integer的缓存深入理解
深入理解java 整型数, Integer的缓存 Integer类实质上也是一个普通的java类,即使值相同,也是不同的对象. 例如 Integer a = 148; Integer b = 148; System.out.println(a==b); 这时输出为false. 很容易理解. 但是如果把值换成48. Integer a = 48; Integer b = 48; System.out.println(a==b); 这时就会发现输出变成了true.原因是jdk对128以下的整数作了缓
随机推荐
- XML和YAML的使用方法
- MySQL配置文件my.cnf中文详解附mysql性能优化方法分享
- PHP、JAVA、.NET这三种技术的区别分析
- 通过使用正确的search arguments来提高SQL Server数据库的性能
- 基于JQuery的6个Tab选项卡插件
- php基础教程
- Python 'takes exactly 1 argument (2 given)' Python error
- Ubuntu 16.04 LTS中源码安装Python 3.6.0的方法教程
- asp下比较全面的获取IP地址的代码
- mySQL count多个表的数据实例详解
- PHP中include和require的区别实例分析
- Zepto实现密码的隐藏/显示
- JSP中的FORM表单中只有一个input文本时,按回车键将会自动提交表单
- javascript如何动态加载表格与动态添加表格行
- JavaScript遍历Json串浏览器输出的结果不统一问题
- 快速定位注册表收藏夹分支
- Nginx搭建https服务器教程
- c++实现发送http请求通过get方式获取网页源代码
- JS模拟实现哈希表及应用详解
- 使用layui 渲染table数据表格的实例代码