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. 用PowerMock mock final类constructors

    也相对简单,直接贴代码 被测方法 public class EmployeeServiceWithParam { public void createEmployee(final Employee e ...

  2. Scala深入浅出实战经典-----002Scala函数定义、流程控制、异常处理入门实战

    002-Scala函数定义.流程控制.异常处理入门实战 Scala函数定义 语句结束无分号 定义无参函数 def 函数名称(参数名称:参数类型)[:Unit=]{ 函数体 } 老师的代码 我的实际代码 ...

  3. HTML代码简写法:Emmet和Haml

    http://www.ruanyifeng.com/blog/2013/06/emmet_and_haml.html?bsh_bid=657901854 HTML代码简写法:Emmet和Haml   ...

  4. sysctl.conf网络内核参数说明(转)

    下面是我的理解,可能有误,仅供参考. 要调优,三次/四次握手必须烂熟于心. client                  server(SYN_SENT)      —>  (SYN_RECV ...

  5. easyui tabs update后tab上关闭图标失效的解决方案

    问题:使用easyui的tabs组件的时候,调用了tab的update方法,更新后的tab标签上的关闭图标失效 使用的js文件是1.3版本的jquery.easyui.min.js文件,通过读源文件发 ...

  6. 对ToString("X2 ")的理解

    /// <summary>        /// 将byte型转换为字符串        /// </summary>        /// <param name=&q ...

  7. 总结-css编码规范

    一.注释 统一采用 :/* 注释内容 */ 二.命名 1.常用命名(多查单词) 参考命名规范.doc 2.选择器 1> [建议] 选择器的嵌套层级应不大于 3 级,位置靠后的限定条件应尽可能精确 ...

  8. Linux安装FTP服务

    转自:http://blog.csdn.net/huangbiao86/article/details/6641952 ftp服务器 1.  在Linux和其他机器之间共享文件(在linux下安装ft ...

  9. C语言程序设计第八次作业

    一.学习内容     本次课学习了一维数组的基本知识,需要大家对如下知识点进行总结:     1. 数组的定义,数组元素的引用,数组的初始化和赋值.     2. 明确以下问题:能否给数组名赋值?为什 ...

  10. Android深度探索--HAL与驱动开发----第五章读书笔记

    第五章主要学习了搭建S3C6410开发板的测试环境.首先要了解到S3C6410是一款低功耗.高性价比的RISC处理器它是基于ARMI1内核,广泛应用于移动电话和通用处理等领域. 开发板从技术上说与我们 ...