c++ - 如何在 C++ 中追加一个整数(带有一个整数)

标签 c++ integer append

我想知道是否有人可以告诉我如何在 C++ 中 append 一个整数(与另一个整数)。基本上,如果我有一个值为 67 的整数,我如何将它 append 到数字 4 以便整数现在为 674?提前致谢!

最佳答案

将first乘以10的second的位数次方,再加上另一个。

示例:63 和 5

63*10=630
630+5 =635

示例:75 和 34

75*100=7500
7500+34=7534
int i1=75;
int i2=34;
int dn=ceil(log10(i2+0.001));     //0.001 is for exact 10, exact 100, ...
int i3=i1*ceil(pow(10,dn)); <---- because pow would give 99.999999(for some optimization modes)
i3+=i2;

编辑: 字符串版本需要 2 次 int 到 str 的转换(速度慢)和 1 次字符串连接(速度不快)和 1 次 str 到 int 的转换(速度慢)。上转换需要 2 次加法、1 次对数、2 次上限、1 次幂、1 次乘法,所有这些都可以在 cpu 中完成,而无需触及主内存来获取/设置子步骤的数据,这肯定比字符串版本的延迟更少。如果编译器设计将 3-4 个字符串存储在 sse 寄存器中,那么两者将竞争性能。因为当一个人忙于计算“幂”函数时,另一个人会忙于从 sse 中提取字符串并将其一个接一个地放入必要的寄存器,然后通过开始加法和乘法在另一个寄存器上构建。 Power(10,x) 函数可以交换 10*10*10.... x 倍,因此纯数学版本再次变得更快。

如果您需要可读性,eq- 的答案是最好的。

关于c++ - 如何在 C++ 中追加一个整数(带有一个整数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12239015/

相关文章:

c++ - 如何使 'string line' 与 'getline(in,line)' 循环中的 'while(getline(...))' 在同一范围内?

c++ - 在 Ubuntu 13.04 上构建 thrift 0.9.1 时出现 libtool 错误

python - python追加带有列表的语法错误

swift - 通过按下来更改空数组中 uiimageview 的颜色

python - Pandas 数据框的动态合并

c++ - 如何在 C++ 中使用带有指向对象的指针 vector 的查找算法?

c++ - 第一个 push_back 中的 STL 列表超出范围

.NET - int32 平台的 MSB 是否不可知?

ios - 使用 Swift 将字符串转换为 Int

Java限制长度整数