[C++] Running time and Integer to String
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的更多相关文章
- Integer.valueof(String s)和Integer.parseInt(String s)的具体区别是什么?
Integer.valueof(String s)和Integer.parseInt(String s)的具体区别是什么? Integer.valueof(String s)是将一个包装类是将一个实际 ...
- Integer.parseInt(String s) 和 Integer.valueOf(String s) 的区别
通过查看java.lang.Integer的源码可以发现, 它们最终调用的都是 /** * Parses the string argument as a signed integer in the ...
- java 13-4 Integer和String、int之间的转换,进制转换
1.int类型和String类型的相互转换 A.int -- String 推荐用: public static String valueOf(int i) 返回 int 参数的字符串表示形式. B. ...
- Integer.valueOf(String) 方法之惑
本文由 ImportNew - 靳禹 翻译自 stackoverflow.欢迎加入翻译小组.转载请见文末要求. 有个仁兄在 StackOverflow 上发起了一个问题,是这么问的: “ 我被下面的代 ...
- [转]Integer.valueOf(String) 方法之惑
具体问题以前偶然遇到过,好象是一个java答题得分的论坛,当时做错还研究了下怎么回事,但是前两天遇到类似问题却没想起来.巩固下基础,转了下面文章. 以下内容转自:http://www.importne ...
- itoa : Convert integer to string
Quote from: http://www.cplusplus.com/reference/cstdlib/itoa/ function Required header : <s ...
- Integer.parseInt(String s, int radix)方法介绍(修正版)
先来说明一下Integer.parseInt(String s, int radix)的功能. Integer.parseInt(String s, int radix)就是将整数字符串s(radix ...
- Object转Integer,String
object先转为字符串,然后通过int 的封装类(Integer)的pasreInt()方法转为int 例如: Object ob = 123; Integer.parseInt(String.v ...
- java中Integer 和String 之间的转换
java中Integer 和String 之间的转换 将数组转换成字符串:char[] array = {'a','b','c','d','e'};String str = new String(ar ...
随机推荐
- hihoCoder#1082
刚开始学习C语言,准备在做hiho的题目的过程中来学习,在此进行记录,如果代码中有错误或者不当的地方还请指正. 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 fjxmlh ...
- local认证
文件路径 用途 示例 备注 #gedit /usr/local/etc/raddb/sites-available/default #gedit /usr/local/etc/raddb/sites- ...
- 算法-QuickSort
#include <stdlib.h> #include <iostream> #include <vector> using namespace std; tem ...
- X3850M2安装CertOS 7 KVM 2--DMMP
1,在DS8000中调整vg为单台服务器.检查另一台服务器内已经没有磁盘信息. 2,在余下的服务器中安装DMMP. 参考:http://edwin-wang.com/2012/08/device-ma ...
- 【转】C#调用DLL
C#中如何调用动态链接库DLL(转) 每种编程语言调用DLL的方法都不尽相同,在此只对用C#调用DLL的方法进行介绍.首先,您需要了解什么是托管,什么是非托管.一般可以认为:非托管代码主要是基 ...
- java 接口
1.接口的引出:发现没有继承关系的类也能共享行为 2.接口不是类,类描述对象的属性和行为,但是接口只关注实现的行为3.当我们发现有行为在多个没有继承关系的类中共享,我们要把它抽取到接口中,而不是写到父 ...
- SpringMVC接收Post的实体/JSon数据
接口代码: @ResponseBody @RequestMapping(value = "/test",method = RequestMethod.POST)/*只允许POST方 ...
- SpringMvc+Spring+Mybatis的jar包依赖关系图
- mac中使用brew安装软件,下载太慢怎么办?
mac中使用brew安装软件,下载太慢怎么办? 本文所说的软件是指较大的软件,如果软件较小,例如软件只有几M,那么使用此方法后,提升会非常小. 了解brew原理: 1: 从网络下载安装包 2: 执行一 ...
- Java中获取键盘输入值的三种方法
Java中获取键盘输入值的三种方法 Java程序开发过程中,需要从键盘获取输入值是常有的事,但Java它偏偏就没有像c语言给我们提供的scanf(),C++给我们提供的cin()获取键盘输入值 ...