To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.robotics.rcx.legosOpen lugnet.robotics.rcx.legos in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 Robotics / RCX / legOS / 2256
    Incorrect result —Robert Templeton
   This problem, unlike the other, is definitely not a result of my eyes/brain being tired or something. I thoroughly displayed every value before and after evaluation and the result is ***WRONG***. Here is the code and the values: typedef struct { int (...) (22 years ago, 30-Jan-02, to lugnet.robotics.rcx.legos)
   
        RE: Incorrect result —Ralph Hempel
     <snipped code> (...) Robert, this is a classic problem with ranges of singed numbers in C rx = (long)(a->magnitude * TA_costable[a->direction]) >> 7; I don't have an RCX in frot of me, but I think you need to cast a->magnitude to long before the (...) (22 years ago, 30-Jan-02, to lugnet.robotics.rcx.legos)
    
         Re: Incorrect result —Robert Templeton
     (...) Yes, this is what happens when one is used to just making everything long and not considering overflows. Even worse was that I was doing the math on the computer's calculator, but not looking at the intermediate result, just typing in the (...) (22 years ago, 30-Jan-02, to lugnet.robotics.rcx.legos)
   
        Re: Incorrect result —Michael Obenland
   (...) 256 * 128 = 32768, one higher as the biggest positive integer value. The cast to long would help, but your cast is too late. I have not tested, but I think rc += ( (long)b->magnitude * (long)TA_costable[...] ) >> 7; will help. Try output in (...) (22 years ago, 30-Jan-02, to lugnet.robotics.rcx.legos)
 

©2005 LUGNET. All rights reserved. - hosted by steinbruch.info GbR