Skip to content

Instantly share code, notes, and snippets.

@cubuspl42
Created January 10, 2016 12:58
Show Gist options
  • Save cubuspl42/c6a1e9be762e3d673539 to your computer and use it in GitHub Desktop.
Save cubuspl42/c6a1e9be762e3d673539 to your computer and use it in GitHub Desktop.
extern "C" {
double plus_jeden(double x);
}
double d(unsigned long long S, unsigned long long E, unsigned long long M) {
S <<= 63;
E <<= 52;
unsigned long long a = S | E | M;
return reinterpret_cast<double&>(a);
}
int main()
{
// * - jedynka niejawna
// M - bit w starszej czesci mantysy
// m - bit w mlodszej czesci mantysy
// . - logiczne polozenie kropki
double a = d(0, 2 + 1023, ((1ull << 52) - 1ull)); // = 111.11111111111111111111111111...1111
// *MM.MMMMMMMMMMMMMMMMMMmmmmmmmm...mmmm
double b = d(0, 21 + 1023, ((1ull << 32) - 1ull)); // = 1000000000000000000001.1111111...1111
// *MMMMMMMMMMMMMMMMMMMMm.mmmmmmm...mmmm
double c = 1234567.89;
double x = plus_jeden(a);
double y = plus_jeden(b);
double z = plus_jeden(c);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment