1

I'm writing code for a platform with constrained access to the standard C++ library and I am trying to push an array of doubles through an interface which will only accept an array of uint8. I saw this stack overflow post here

which shows a way of converting a double precision value to an int array. here's my code. (note that index 1 and index 9 are the decimal and delimiter respectively. also the values are always between 0.0 and 1.0)

void Instrument::ConvertDoubleToUInt8Array(double a_dValue, int *a_dValueArray)
{

    a_dValueArray[0] = (int(a_dValue)%10);
    a_dValueArray[1] = 10;
    a_dValueArray[2] = (int(a_dValue*10)%10);
    a_dValueArray[3] = (int(a_dValue*100)%10);
    a_dValueArray[4] = (int(a_dValue*1000)%10);
    a_dValueArray[5] = (int(a_dValue*10000)%10);
    a_dValueArray[6] = (int(a_dValue*100000)%10);
    a_dValueArray[7] = (int(a_dValue*1000000)%10);
    a_dValueArray[8] = (int(a_dValue*10000000)%10);
    a_dValueArray[9] = 11;
}

my question is will this code run correctly on both big endian and little endian systems. I cannot see why it wouldn't but I'm not very experienced in this area

Community
  • 1
  • 1
cixelsyd
  • 31
  • 2

0 Answers0