devxlogo

Converting a Datatype to a Stream of Bytes

Converting a Datatype to a Stream of Bytes

Sometimes you need to convert a certain datatype to its binary stream ofbytes. An easy way to do it is to create a union that has two members:the datatype in question and an array of characters with a matchingsize. For example, to examine the binary representation of a pointer toa member function, the following program assigns the address of themember function f() to the union member p and then it examines thecorresponding character array bin_ptr:

   class A   {   public:    void f();  };  typedef void (A::*pmf)(); // pointer to member   union U  {    pmf p;    unsigned char bin_ptr[sizeof(pmf)];  };  int main()  {    U u = {0}; // initialize     u.p = &A::f; // assign member function's address      for (int j = 0; j< sizeof (U); j++)      cout<< (int)u.bin_ptr[j]<<" "; // display each byte in p  }
devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist