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

How to save your file in dreamweaver, HOW TO SAVE YOUR FILE? Step 1: Cl...

HOW TO SAVE YOUR FILE? Step 1: Click on FILE Step 2: Click on SAVE Step 3: Choose the folder in which you want to save Step 4: Provide a name to the file (with .htm /

Entrepreneurship, explain succession planning and strategies for harvesting...

explain succession planning and strategies for harvesting and ending the venture

Unification - artificial intelligence, Unification - Artificial intelligenc...

Unification - Artificial intelligence: We have said that the laws of inference for propositional logic detailed in the previous lecture can also be used in first-order logic.

Define polling, Define Polling. A Polling process is used to recognize...

Define Polling. A Polling process is used to recognize the highest priority source by software means. In this process there is one common branch address for all interrupts.

Describe the term- macros, Describe the term- Macros A macro is a key o...

Describe the term- Macros A macro is a key or name which signifies a series of commands or key strokes. Many applications allow single nominated key or single word on a keyboar

Set screen and leave screen, What happens if only one of the commands SET S...

What happens if only one of the commands SET SCREEN and LEAVE SCREEN is used without using the other? If we use SET SCREEN without LEAVE SCREEN, the program ends processing for

Alpha-beta pruning, Alpha-beta pruning: Thus we can prune via the alph...

Alpha-beta pruning: Thus we can prune via the alpha-beta method, it makes means to perform a depth-first search requiring the minimax principle. Just compared to a breadth fir

Show the fundamental process of instruction execution, Q. Show the fundamen...

Q. Show the fundamental process of instruction execution? The fundamental process of instruction execution is:  1. Instruction is fetched from memory to CPU registers (calle

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