#include <iostream>
using namespace std;
 
union F2U {
	float fl;
	unsigned ui;
};
 
void printFloat(const char* name, float x) {
	F2U f;
	f.fl = x;
	printf("%s = %f \t 0x%x\n", name, f.fl, f.ui);
}
 
float fromUint( uint i) {
	F2U f;
	f.ui = i;
	return f.fl;
}
 
int main() {
 
	float a = 0.1f;
 
	float b = fromUint(0x36400497);
 
	printFloat("a", a);
	printFloat("b", b);
 
	const float split = 8193.0;
 
    float ca = split * a;
    float cb = split * b;
 
    float v1a = ca - (ca - a);
    float v1b = cb - (cb - b);
 
	printFloat("v1a", v1a);
	printFloat("v1b", v1b);
 
	return 0;
}
				I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdW5pb24gRjJVIHsKCWZsb2F0IGZsOwoJdW5zaWduZWQgdWk7Cn07Cgp2b2lkIHByaW50RmxvYXQoY29uc3QgY2hhciogbmFtZSwgZmxvYXQgeCkgewoJRjJVIGY7CglmLmZsID0geDsKCXByaW50ZigiJXMgPSAlZiBcdCAweCV4XG4iLCBuYW1lLCBmLmZsLCBmLnVpKTsKfQoKZmxvYXQgZnJvbVVpbnQoIHVpbnQgaSkgewoJRjJVIGY7CglmLnVpID0gaTsKCXJldHVybiBmLmZsOwp9CgppbnQgbWFpbigpIHsKCQoJZmxvYXQgYSA9IDAuMWY7CgoJZmxvYXQgYiA9IGZyb21VaW50KDB4MzY0MDA0OTcpOwoJCglwcmludEZsb2F0KCJhIiwgYSk7CglwcmludEZsb2F0KCJiIiwgYik7CgkKCWNvbnN0IGZsb2F0IHNwbGl0ID0gODE5My4wOwoKICAgIGZsb2F0IGNhID0gc3BsaXQgKiBhOwogICAgZmxvYXQgY2IgPSBzcGxpdCAqIGI7CgogICAgZmxvYXQgdjFhID0gY2EgLSAoY2EgLSBhKTsKICAgIGZsb2F0IHYxYiA9IGNiIC0gKGNiIC0gYik7CgoJcHJpbnRGbG9hdCgidjFhIiwgdjFhKTsKCXByaW50RmxvYXQoInYxYiIsIHYxYik7CgkKCXJldHVybiAwOwp9