Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: Java
Expertise: Intermediate
Jan 12, 2000

Get a Hold of the Bits in Your Integers

Sometimes, it is useful to obtain a binary representation of integer, or a character. For example, we might want to represent the character 'a' by its binary 01100001, the letter 'b' is 01100010, and so on.

We can obtain the individual bits in an integer by anding it with a bitmask that contains a one bit in the position we are fetching and a zero bits in all the other positions.

If the result of the and is zero, then that bit is not set, otherwise the bit is set. To print out all of the bits in a number (or character), we can write a loop to shift the bitmask and perform the anding on each bit.

The following function prints a range of bits in an integer.
 
    public void printBits(int number, int startBit, int numBits) 
    { 
        int bitmask; 
        bitmask = 0x80000000 >>> startBit; 
        numBits += startBit; 
        for(int i=startBit; i < numBits; ++i) 
        { 
            if((number & bitmask) == 0) 
                System.out.print('0'); 
            else 
                System.out.print('1'); 
            bitmask >>>= 1; 
        } 
        System.out.println(); 
    } 
to print out the binary representation of characters from 'a' to 'z', we can write: 
        for(char ch='a'; ch <= 'z'; ++ch) 
        { 
            printBits(ch, 24, 8); 
        } 
to print out the binary representation of numbers from 1 to 100, we can write: 
       for(int i=1; i<101; i++) 
      { 
          printBits(i, 24, 8); 
      } 
Behrouz Fallahi
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date