-
- // Copy floats into 32 bits (casting will alter the representation)
- unsigned a; memcpy(&a, &opa, 8);
- unsigned b; memcpy(&b, &opb, 8);
-
-
- char buffer[BUFSIZ];
- int len = sprintf(buffer, "%08x\n%08x\n%03x\n",a, b, op); // This is... truly awful... why am I doing this
- //fprintf(stderr, "Writing:\n%s", buffer);
+
+ stringstream s;
+ s << hex << a.to_ullong() << "\n" << b.to_ullong() << "\n" << setw(3) << setfill('0') << op << "\n";
+ string str(s.str());
+ //fprintf(stderr, "Writing:\n%s\n", str.c_str());