Search code examples
c++integerappend

How To Append an Integer (with an Integer) in C++


I was wondering if anyone could tell me how to append an integer (with another integer) in C++. Basically, if I have an int with this the value 67, how would I append it with the number 4 so the integer is now 674? Thanks in advance!


Solution

  • Multiply first by ten to the power of digit number of second and add the other .

    Example: 63 and 5

    63*10=630
    630+5 =635
    

    Example: 75 and 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;
    

    Edit: String version needs 2 int to str conversion (which is slow) and 1 string concatenation (which is not fast) and 1 str to int conversion (which is slow). Upper conversion needs 2 additions, 1 logarithm, 2 ceilings, 1 power, 1 multiplication all of which could be done in cpu without touching main memory to get/set data for sub steps that is surely less latency then string versions. If 3-4 character strings are stored in sse registers by compiler design, then both would compete for performance. Because while one would be busy computing "power" function, other would be busy extracting string from sse and putting it necessary registers one by one and constructing on another register by starting additions and multiplications. Power(10,x) function can be traded for 10*10*10.... x times so pure math version becomes faster again.

    If it is readability you need, eq- 's answer is best imo.