Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
08/05/07 21:05
Read: times


 
#142788 - Working within the range of long integers
Responding to: ???'s previous message
Stanley Lio said:
Why is this happen? Or it just happened to work?

tmp = 65536 - (10 * AxisAngle + 460) * 221184 / 120000;

float = long - (int * char + int) * long / long;
float = long - (int + int) * long / long;
float = long - (int) * long / long;
float = long - long / long;
float = long - long;
float = long;

It didn't just happen to work. Your original statement caused long integer overflow. Your second version factored out 100, which reduced the range of the subexpressions to always be within the range of a long integer.

You never were taking (dis)advantage of floating point.

List of 31 messages in thread
TopicAuthorDate
Problem with using Timer 1 of AT89S52 in C            01/01/70 00:00      
   methodology and the raw reason            01/01/70 00:00      
      Range of Variables            01/01/70 00:00      
         What type is AxisAngle?            01/01/70 00:00      
            AxisAngle is char            01/01/70 00:00      
            Integer < 65536?            01/01/70 00:00      
               Working within the range of long integers            01/01/70 00:00      
                  so I should....?            01/01/70 00:00      
                     A float constant            01/01/70 00:00      
                        what's the different            01/01/70 00:00      
                           const float...            01/01/70 00:00      
                              which means the compiler            01/01/70 00:00      
                     floats            01/01/70 00:00      
         drop float            01/01/70 00:00      
            Since I have just started to learn C...            01/01/70 00:00      
               A real programming language            01/01/70 00:00      
            Fractional Equivalence            01/01/70 00:00      
         Why?            01/01/70 00:00      
            there is a reason for this...            01/01/70 00:00      
               don't think as a PC programmer....            01/01/70 00:00      
                  Application vs. Hardware Platform            01/01/70 00:00      
                     the prudent programmer...            01/01/70 00:00      
                  PDP?            01/01/70 00:00      
                     it's not similar to the REAL assembly, of course,            01/01/70 00:00      
            Division is not always first            01/01/70 00:00      
               You are right.            01/01/70 00:00      
                  Explicitness            01/01/70 00:00      
                     is this when the C-code...            01/01/70 00:00      
                     agree with the agreement            01/01/70 00:00      
   Try this, can be better            01/01/70 00:00      
      Superfluous casts            01/01/70 00:00      

Back to Subject List