[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 ...
随机推荐
- java常用基础知识点 (持续追加)
作为一个Java编程人,会经常用上JDK中的大量的API类库,常用的有字符串操作.集合操作.文本操作.输入输出操作.以及网络操作, 常用的包: 1. java.lang Java程序的基础类,字符串, ...
- C++数据类型和变量类型。
数据类型 数字是自由的[不只属于某个类型]!但是它可以有不同的身份!int.char.float.double等身份.它以不同的身份[存储规则]存储在内存的某个位置内部! 变量类型 内存编号是不会变的 ...
- Java泛型学习笔记 - (五)泛型接口
所谓泛型接口, 类似于泛型类, 就是将泛型定义在接口上, 其格式如下: public interface 接口名<类型参数>如: interface Inter<T> { pu ...
- JDK8+Dubbo2.5.2实践
几年前就听说过Dubbo的大名,今天由于工作需要,研究一下. 从网上找了一篇文章,非常靠谱,并且提供了简单的示例代码,基本上可以跑起来. 文章地址: http://www.cnblogs.com/Ja ...
- Spark的Straggler深入学习(2):思考Block和Partition的划分问题——以论文为参考
一.partition的划分问题 如何划分partition对block数据的收集有很大影响.如果需要根据block来加速task的执行,partition应该满足什么条件? 参考思路1:range ...
- 几款Z2760平板对比
现阶段的Windows平板本质上分为Windows RT系统平板和完整的Windows 8系统平板两大阵营.RT系统的平板轻薄续航持久,但是由于没法安装常规的.exe程序,所以对于工作需要略显不足,是 ...
- C++虚方法(虚函数)随笔
本文不讨论虚函数的原理,只简单总结下虚函数的常用事项. 虚函数(虚方法)是C++动态联编 实现多态的重要手段,在函数声明时使用关键字virtual即可,如: virtual void func(voi ...
- 谈谈自己对C语言中函数指针的一些理解 (第一次写博客,有点小兴奋哈)
1.函数指针声明的格式及简单的使用 (1)格式:(返回值)(*函数指针名)(参数列表) 例如:声明一个无参数无返回值的函数指针(void)(*p)(void). (2)将函数指针指向某个无参数无 ...
- php数组常见的几种遍历方法
1.foreach遍历 $arr[] = array('first'=>green,'second'=>'yellow','third'=>'blue'); foreach($arr ...
- Java网络编程及安全
一.实验内容: 1.运行教材上TCP代码,结对进行,一人服务器,一人客户端: 2.利用加解密代码包,编译运行代码,一人加密,一人解密: 3.集成代码,一人加密后通过TCP发送: 注:加密使用AES或者 ...