barej
barej

Reputation: 1406

extremely huge number in assembly code but invalid in C++

In a disassembled code(probably compiled by visual studio), I found such a code:

label:
dt 1.189713341495303E+4932

What does it mean? why should someone use such number?

boost::lexical_cast<double>("1.189713341495303E+4932") fails conversion of this number. If it is out of range, why is it allowed in assembly?

Upvotes: 0

Views: 69

Answers (1)

Paul R
Paul R

Reputation: 213059

This value is close to LDBL_MAX in float.h on most systems - it's the maximum value of a long double:

$ grep LDBL_MAX float.h
#define LDBL_MAX    __LDBL_MAX__

$ gcc -dM -E - < /dev/null | grep __LDBL_MAX__
#define __LDBL_MAX__ 1.18973149535723176502e+4932L

Upvotes: 3

Related Questions