[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Tutor on bit and bitmasks



On Thu, Jun 18, 1998 at 10:08:48AM -0500, servis@purdue.edu wrote:
> 
> I need to set bits 0,1,4,5,6,7,11 for port 0x201.  I have NO IDEA how
> to calculate the bitmask!  Obviously I need to learn this stuff so were
> can I read up on this.

Read any book on analysis for undergraduates.

The base number of the decimal system is 10. For example, 9378 can be
read as
9*10^3 + 3*10^2 + 7*10^1 + 8*10^0

Note that 10^0=1, 10^1=10 and so on.

For computers, the base 10 is not commonly used, better
are 2, 8 and 16.

The bits are really the digits of numbers with base 2.
You want the number 100011110011
		    ^          ^ 
		    bit 11     bit 0

= 1*2^11+1*2^7+1*2^6+1*2^5+1*2^4+1*2^1+1*2^0
= 2048+127+64+32+16+2+1 = (left as an exercise for the reader)

But it is easier, because you have to supply the bit mask as
a hexadecimal number (0x????), so you can take four base2-digits
and form a hexadecimal digit (base 16=2^4)

(you have to start from the back)
0011 (base2) = 3 (base 10) = 3 (base 16)
1111 (base2) =15 (base 10) = f (base 16)
1000 (base2) = 8 (base 10) = 8 (base 16)

So: 100011110011 (base2) = 0x08f3

Note that the hexadecimalsystem has by convention the digits
0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f

Marcus

-- 
"Rhubarb is no Egyptian god."        Debian GNU/Linux        finger brinkmd@ 
Marcus Brinkmann                   http://www.debian.org    master.debian.org
Marcus.Brinkmann@ruhr-uni-bochum.de                        for public  PGP Key
http://homepage.ruhr-uni-bochum.de/Marcus.Brinkmann/       PGP Key ID 36E7CD09


--  
To UNSUBSCRIBE, email to debian-user-request@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org


Reply to: