printing double in binary

Posted by Happy Mittal on Stack Overflow See other posts from Stack Overflow or by Happy Mittal
Published on 2010-05-02T17:45:42Z Indexed on 2010/05/02 17:47 UTC
Read the original article Hit count: 193

Filed under:
|
|

In Thinking in C++ by Bruce eckel, there is a program given to print a double value
in binary.(Chapter 3, page no. 189)

int main(int argc, char* argv[]) 
{  
  if(argc != 2) 
  {  
    cout << "Must provide a number" << endl;  
    exit(1);  
  }  
  double d = atof(argv[1]);  
  unsigned char* cp = reinterpret_cast<unsigned char*>(&d);  
  for(int i = sizeof(double); i > 0 ; i -= 2)   
  {  
    printBinary(cp[i-1]);  
    printBinary(cp[i]);  
  }
}

Here while printing cp[i] when i=8(assuming double is of 8 bytes), wouldn't it be undefined behaviour?
I mean this code doesn't work as it doesn't print cp[0].

© Stack Overflow or respective owner

Related posts about print

Related posts about double