我想知道是否有人可以告诉我如何在 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/