std::string num2str(int64_t p_vint, int8_t p_radix)
{
char str[48] = { 0 };
int64_t temp = 0;
int64_t o_length = 0;
bool is_negative = false;
//for hex
//judge if is negative number
str[0] = '+';
if (p_vint < 0)
{
str[0] = '-';
p_vint = 0 - p_vint;
is_negative = true;
} if (p_radix > 10)
{
for (int64_t i = 1; p_vint > 0; ++o_length, ++i)
{
temp = p_vint;
p_vint /= p_radix;
str[i] = temp - p_vint * p_radix + 0x30;
str[i] = (str[i] > 0x39 ? (str[i] + 7) : str[i]);
}
}
else
{
int a = 0;
for (int64_t i = 1; p_vint > 0; ++o_length, ++i)
{
temp = p_vint;
p_vint /= p_radix;
a = temp - p_vint * p_radix + 0x30;
str[i] = a;
}
} for (int64_t i = 1; i < (o_length / 2 + 1); i++)
{
str[i] ^= str[o_length + 1 - i];
str[o_length + 1 - i] ^= str[i];
str[i] ^= str[o_length + 1 - i];
} if (!is_negative)
{
str[o_length + 1] = 0;
char * str_tmp = &str[1];
return std::string(str_tmp);
}
else
{
str[++o_length] = 0;
}
return std::string(str);
}

  Running Time:

#include <chrono>
#include <string.h> using namespace std::chrono; int main()
{
auto start = system_clock::now();
char * str = new char[48];
memset(str, 0, 48);
//for (int i = 0; i < 1000000; i++)
//{
num2str(6400, 10, str);
std::cout << str;
//} auto usage = duration_cast<milliseconds>(system_clock::now() - start);
std::cout << "Running Time:" << (double)usage.count() << "ms" << std::endl; getchar();
return 0;
}

  

/*
2.
#include <ctime> clock_t start = clock(); clock_t end = clock();
std::cout << "Running time:" << (double)(end - start) / CLOCKS_PER_SEC * 1000 << "ms" << std::endl;
*/

  

//3.No Recommanded:
#include <Windows.h> int main()
{
double time = 0;
double counts = 0;
LARGE_INTEGER nFreq;
LARGE_INTEGER nBeginTime;
LARGE_INTEGER nEndTime;
QueryPerformanceFrequency(&nFreq);
QueryPerformanceCounter(&nBeginTime);//开始计时
//encode("d:/bgm_.txt", "d:/bgm2.txt"); //test
//for (int i = 0; i < 1000000; i++)
// int2str(i); //5.33s
//for (int i = 0; i < 1000000; i++)
// int2str_oss(i); //23.53s QueryPerformanceCounter(&nEndTime);//停止计时
time = (double)(nEndTime.QuadPart - nBeginTime.QuadPart) / (double)nFreq.QuadPart;
std::cout << "Running Time:" << time * 1000 << "ms" << std::endl; return 0;

  

[C++] Running time and Integer to String的更多相关文章

  1. Integer.valueof(String s)和Integer.parseInt(String s)的具体区别是什么?

    Integer.valueof(String s)和Integer.parseInt(String s)的具体区别是什么? Integer.valueof(String s)是将一个包装类是将一个实际 ...

  2. Integer.parseInt(String s) 和 Integer.valueOf(String s) 的区别

    通过查看java.lang.Integer的源码可以发现, 它们最终调用的都是 /** * Parses the string argument as a signed integer in the ...

  3. java 13-4 Integer和String、int之间的转换,进制转换

    1.int类型和String类型的相互转换 A.int -- String 推荐用: public static String valueOf(int i) 返回 int 参数的字符串表示形式. B. ...

  4. Integer.valueOf(String) 方法之惑

    本文由 ImportNew - 靳禹 翻译自 stackoverflow.欢迎加入翻译小组.转载请见文末要求. 有个仁兄在 StackOverflow 上发起了一个问题,是这么问的: “ 我被下面的代 ...

  5. [转]Integer.valueOf(String) 方法之惑

    具体问题以前偶然遇到过,好象是一个java答题得分的论坛,当时做错还研究了下怎么回事,但是前两天遇到类似问题却没想起来.巩固下基础,转了下面文章. 以下内容转自:http://www.importne ...

  6. itoa : Convert integer to string

      Quote from:  http://www.cplusplus.com/reference/cstdlib/itoa/   function   Required header : <s ...

  7. Integer.parseInt(String s, int radix)方法介绍(修正版)

    先来说明一下Integer.parseInt(String s, int radix)的功能. Integer.parseInt(String s, int radix)就是将整数字符串s(radix ...

  8. Object转Integer,String

    object先转为字符串,然后通过int 的封装类(Integer)的pasreInt()方法转为int 例如: Object  ob = 123; Integer.parseInt(String.v ...

  9. java中Integer 和String 之间的转换

    java中Integer 和String 之间的转换 将数组转换成字符串:char[] array = {'a','b','c','d','e'};String str = new String(ar ...

随机推荐

  1. AngularJS的学习笔记(一)

    声明:单纯作为我自己的学习笔记,纯是为了自己学习,上面的话都是从各处粘贴,如有冒犯,请原谅我这个小菜鸟~ AngularJS使用了不同的方法,它尝试去补足HTML本身在构建应用方面的缺陷. 使用双大括 ...

  2. Java JDBCI批量插入数据

    智能插入:将整批分批,每一千条提交一次,sql注入(安全,使用软解析,提高效率) sql注入攻击:简单例子 select * from table where name='"+un+&quo ...

  3. POJ 题目3280 Cheapest Palindrome(区间DP)

    Cheapest Palindrome Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 7148   Accepted: 34 ...

  4. VS2010默认属性文件配置

    问题: 在VS2010中,同一个解决方案下有多个项目,都需要使用某一个库. 如果项目比较多,或者编译链接环境属性变动频繁,分别对项目进行配置就很麻烦. 解决: 在VS的配置文件中统一配置属性: 我的配 ...

  5. python进阶笔记 thread 和 threading模块学习

    Python通过两个标准库thread和threading提供对线程的支持.thread提供了低级别的.原始的线程以及一个简单的锁.threading基于Java的线程模型设计.锁(Lock)和条件变 ...

  6. MySQL数据库5 - 插入数据,修改数据,删除数据

    一.插入数据 1. 所有列都插入值 INSERT [INTO] TABLE_NAME VALUES(V1,V2....Vn); 特点:列值同数,列值同序 eg: insert into users v ...

  7. 【转】 修改vs2010帮助文档(MSDN)路径

    VS2010的MSDN采用代理网页的方式,规定首次确定目录后不能更改本地Help Library的路径,只好手动变更路径 第一步: 先把MSDN装好,先装在C盘,默认的路径 第二步 现在我要把MSDN ...

  8. ios选取相册视频,过滤掉所有图片!

    imagePicker = [[UIImagePickerController alloc]init]; imagePicker.mediaTypes = [NSArray arrayWithObje ...

  9. Qt图形视图框架公开课资料

    接受CSDN学院的邀请,讲一次公开课,主题是Qt图形视图框架,报名链接在这里:http://edu.csdn.net/huiyiCourse/detail/228. 内容有两部分:自定义Item和拖放 ...

  10. 课前HTML基础

    一..站点的建立 作用:用来归纳一个网站上所有的网页,素材以及他们之间的联系. 站点根文件夹的命名规则:必须是以英文或者下划线开头,后面可接数字和下划线,不可以使用中文和特殊字符. 二:创建HTML页 ...