Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Converting an Integer Array into a Number

Think I have an integer array like this:

a[0]=60; a[1]=321; a[2]=5;

now I want to convert the whole of this array into an integer number, for example int b become 603215 after running the code.

How to do it?

like image 419
Inside Man Avatar asked Jun 26 '12 05:06

Inside Man


2 Answers

Array to Integer conversion

Number should be stored in opposite way

 for(int i=0;i<d;i++)
    {
        ans += num[i]*pow(10,i);
    }
like image 142
Navneet Kumar Gupta Avatar answered Oct 06 '22 00:10

Navneet Kumar Gupta


Use a std::stringstream:

#include <iostream>
#include <sstream>

int main() {
    std::stringstream ss;
    int arr[] = {60, 321, 5};

    for (unsigned i = 0; i < sizeof arr / sizeof arr [0]; ++i)
        ss << arr [i];

    int result;
    ss >> result;
    std::cout << result; //603215
}

Note that in C++11 that mildly ugly loop can be replaced with this:

for (int i : arr)
    ss << i;

Also, seeing as how there is a good possibility of overflow, the string form of the number can be accessed with ss.str(). To get around overflow, it might be easier working with that than trying to cram it into an integer. Negative values should be taken into consideration, too, as this will only work (and make sense) if the first value is negative.

like image 29
chris Avatar answered Oct 05 '22 22:10

chris