0

Can someone explain what Bit Masking is used for and how?

I read about the bit masking in bitwise operations but i still don't quite understand it.

25th Jun 2018, 2:21 AM
Elram Espra
Elram Espra - avatar
1 Answer
+ 5
Two places I've used bit masking are accessing device hardware registers and generating machine code in compilers. Back in the days of memory being tight, it was used a lot more than now days. The concept is storing multiple data values in a single addressable memory location. With the memory existing today, it doesn't make sense to bother because of the cost of putting the data in or taking it out. Say you have two variables: 'a' with a range of 0..3 and 'b' with a range of 0..64. They could fit in 8 bits (2 for 'a' & 6 for 'b'.) To put 'b' into the data, you could code: data = (data & 0xc0) | b; "(data & 0xc0)" tosses the old 'b' value and saves the 'a' value. The "| b" adds the new 'b' value. To retrive 'b' value, you could code: b = data & 0x3f;
25th Jun 2018, 3:28 AM
John Wells
John Wells - avatar