Bit manipulation techniques, Computer Engineering

Assignment Help:

  We can also use the logical operators to numbers directly and  perform simple bit manipulation . The operators are

    &  Bitwise AND
    |  Bitwise OR
    ^  Bitwise exclusive or 
    ~  Bitwise one's complement i.e. NOT
    <<  Left shift
    >>   Right shift

Example
  A 8 bit number represents a coded function, bit  3-4 describes the operation to be performed on the number in bits 0- 2 and 5-7  the function i.e. 
 
    00    Add
    01    Subtract
    10     Divide
    11    Multiply
 
  Write a Program to extract the number and operation

Answer
We need to extract the bits 3-4, the answer is bit operators 
 
    Assume number is in the variable A i.e.  11011011
 
    Mask off the first number i.e. bit 0-2
    num1 = a & 0x07;        11011011 and
                00000111
                00000011
    
    Mask off the second number i.e. bit 5 -7
    num2 = a & 0xe0;        11011011 and
                11100000
                11000000
 
    We need to shift num2 down by 5 places i.e.
    num2 = num2 >>5;
                00000110

This could be done in one instruction i.e.
    num2 = (a & 0xe0) >> 5;
 
  Mask off the operation bits i.e. bit 4-5
    operation = (a & 0x18) >> 3;
 
  We can then use the switch statement to select each operation
  switch(operation)
  {
  case 0:  
    total = num1+num2;
    break;
  case 1: 
     total = num1-num2;
    break;
  case 2:  
    total = num1/num2;
    break;
  case 3:  
    total = num1*num2;
    break;
  }
Hence the entire program is 
  #include
  void main()
  { 
  char prompt;
  /*Author : Mr James Mc Carren 
  Company: Staffordshire University 
   Date: 26th August 2012 
  Version 1.0 
   Function : To show bit manipulation
   Modifications:   none*/
  int num1,num2,operation,total,a;
  printf("Please enter in the number\n\r");
  scanf("%x",&a);
  num1 = a & 0x07;  
  num2 = (a & 0xe0) >> 5 ;
  operation = (a & 0x18) >> 3;
  switch(operation)
  {
  case 0:   total = num1+num2;
    break;
  case 1:  total = num1-num2;
    break;
  case 2:  total = num1/num2;
    break;
  case 3:  total = num1*num2;
    break;
  }
  printf("The total is %d\n\r",total); 
  printf("Press and key to exit \n\r");
  scanf("\n%c",&prompt);
  }


Related Discussions:- Bit manipulation techniques

What is branch instruction, What is branch instruction? As a result of ...

What is branch instruction? As a result of branch instruction is a type of instruction which loads a latest values into the program counter.

What is the basic approach of page replacement, What is the basic approach ...

What is the basic approach of page replacement?  If no frame is free is available, find one that is not currently being used and free it. A frame can be freed by writing its co

Introduction to e-commerce, Have you heard about e-commerce? What place is ...

Have you heard about e-commerce? What place is e-commerce located at? What are e-commerce objectives? When did e-commerce starts? How e-commerce works? Who takes advantages of e-co

The voltage of telephone given by telephone companies, Telephone companies ...

Telephone companies normally provide a voltage of to power telephones? Telephone companies usually give a voltage of to power telephones -48 volts DC.

Find point-to-point link required in fully connected network, The number of...

The number of point to point links required in a fully connected network for 50 entities is? The number of point to point links needed in a completely connected network for 50

Determine about the authoring software, Determine about the Authoring Softw...

Determine about the Authoring Software Also termed as author ware; this is a program which helps in the writing of hypertext or multimedia applications. Authoring tools general

View the site files, To see a high-level representation of the structure of...

To see a high-level representation of the structure of a local site, you use Dreamweaver's Site Map view. You can also use site map to add new files to the site, to add, remove and

How to change default drive in dos, Q. How to Change Default Drive in dos? ...

Q. How to Change Default Drive in dos? To modify a default drive type the new drive letter followed by colon (:) and then press Enter.  For example, if the default drive is A a

Data structures.., in asingle function declaration what is maximum no of st...

in asingle function declaration what is maximum no of statements that may be recursive calls

Explain classless inter-domain routing, Explain Classless Inter-Domain Rout...

Explain Classless Inter-Domain Routing. It is a new addressing scheme for the internet that permits for more efficient allocation of IP addresses than old class A, B and C addr

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd