I would like to write a function to 'decode' bit mask into original values, e.g.  

We have number and text attached to it: 

* **2** - Text\_1
* **4** - Text\_2
* **8** - Text\_3
* **16** - Text\_4
* **32** - Text\_5

Now I'm entering number e.g. `48` (`32 + 16`) and I should get `Text_5` and `Text_4` so it's should return two numbers: `32` and `16`.  

How to get this?