| 
  • If you are citizen of an European Union member nation, you may not use this service unless you are at least 16 years old.

  • Finally, you can manage your Google Docs, uploads, and email attachments (plus Dropbox and Slack files) in one convenient place. Claim a free account, and in less than 2 minutes, Dokkio (from the makers of PBworks) can automatically organize your content for you.

View
 

Digit Mask

Page history last edited by Kenneth Finnegan 12 years, 3 months ago

The original usage for this macro was for converting integers to a string, which is better served by sprintf, but it could be used for other applications. 

 

Code:

#include <math.h>

#define MASKDIGIT(digitnum, n)  (n/pow(10, digitnum) - (n/pow(10,digitnum+1)*10))

 

Compile with:

cc -lm digitmask.c

 

Usage:

This macro could be used if you're expecting to return multiple single digit numbers from a function.

 

If you change the +1 to a +3 and *10 to *1000, you can use this as part of a function to display numbers nicely, like "1,000,000" instead of "1000000"

 


Extensions:

The width of the mask (one digit in this case) could be made variable realatively easily.

 


Sources:

http://codingexperiments.com/archives/324

Comments (0)

You don't have permission to comment on this page.