devxlogo

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  }

Charlie has over a decade of experience in website administration and technology management. As the site admin, he oversees all technical aspects of running a high-traffic online platform, ensuring optimal performance, security, and user experience.

See also  Five Early Architecture Decisions That Quietly Get Expensive

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.