Common Bit Manipulation

bool getBit(int num, int shift)
{
 return ( (num & (1 << shift)) != 0);
}
int setBit(int num, int shift)
{
 return ( num | (1 << shift));
}
int clearBit(int num, int shift)
{
 int mask = ~ (1 << shift);
 return num & mask;
}
int clearBitMSBthroughShiftBit(int num, int shift)
{
 int mask = (1 << (shift )) -1;
 return num & mask;
}
int clearBitMSBthroughShift0(int num, int shift)
{
 int mask = ~ ((1 << (shift +1 )) -1);
 return num & mask;
}
int updateBit(int num, int shift, int v) //set i-th bit = v
{
 int mask = ~ (1 << shift);
 return (num & mask) | (v << shift);
}

 

MyMoneyJournal

This software records your daily expense and income. I use several Microsoft Access database files (*.mdb) to store data. To prevent an oversize database file, I split the database into several parts.

Futures:

  • Easy to track your income and expenses
  • Display pie chart and column chart illustrate cash flow
  • Password protect

Next version futures:

  • It will provide you with up-to-date exchange rates.

Continue reading