alex Posted January 23, 2013 Report Share Posted January 23, 2013 Often for debugging purposes in a live system I need to display internal states on a seven segment display. This is trivial when I only need to display hex numbers but recently I needed the value represented in decimal because it made more sense for my application. I had a need for a hex to dec converter and as I usually do, I google it first, in case it had been done already. Sure enough, someone has, and the solution involves only shifting and adding 3. The method involved was new to me as I hadn't heard of this way of converting hex to dec, but it works, see his blog. Hope I taught some of you something today Link to comment Share on other sites More sharing options...
hamster Posted January 23, 2013 Report Share Posted January 23, 2013 The last bit of http://people.ee.duke.edu/~dwyer/courses/ece52/Binary_to_BCD_Converter.pdf has how you can chain them in a a very cunning way that is even more confusing! For some other bit twiddling magic have a look at http://graphics.stanford.edu/~seander/bithacks.html. Mostly of interest to software use, but interesting if you like that stuff... eg: min = y ^ ((x ^ y) & -(x < y)); // min(x, y)Or for the ultimate of bit twiddling hack (based on the quake III arena source): float fast_inverse_square_root( float number ){ long i; float x2, y; const float threehalfs = 1.5F; x2 = number * 0.5F; y = number; i = * ( long * ) &y; // evil floating point bit level hacking i = 0x5f3759df - ( i >> 1 ); // what the f#@k? y = * ( float * ) &i; y = y * ( threehalfs - ( x2 * y * y ) ); // 1st iteration y = y * ( threehalfs - ( x2 * y * y ) ); return y;} Link to comment Share on other sites More sharing options...
hamster Posted January 23, 2013 Report Share Posted January 23, 2013 Oh, and yes, judging my my last post I should get out more... Link to comment Share on other sites More sharing options...
alvieboy Posted January 23, 2013 Report Share Posted January 23, 2013 I use several of those algorithms. The one I like the most is this: http://graphics.stanford.edu/~seander/bithacks.html#ReverseParallel. Alvie Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.