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

Pd controller, PD controller Student should aim for Kp and Kd value that...

PD controller Student should aim for Kp and Kd value that will minimize the steady error with improved rise time and settling time. The amount of over shoot should not be more t

Explain lan topologies, Explain LAN Topologies and its basic topologies. ...

Explain LAN Topologies and its basic topologies. LAN Topologies: Network topology is a physical schematic that shows interconnection of the various users. There are four fund

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.

Show the steps of execution of instructions, Q. Show the steps of execution...

Q. Show the steps of execution of instructions? Fetch First Instruction into CPU: Step 1: Find/calculate the address of first instruction in memory. In this machine illust

What is a table pool, What is a table pool? A table pool (or pool) is ...

What is a table pool? A table pool (or pool) is used to join several logical tables in the ABAP/4 Dictionary.  The definition of a pool having of at least two key fields and a

How can we create an outline around text, Place some text wherever. Then cl...

Place some text wherever. Then click "Create path from text" in the "Text tool option" window. Then use "Edit" -> "Stroke path" and choose the appropriate options in the following

Which is valid syntax of the fork and join primitive, Which is valid syntax...

Which is valid syntax of the Fork and Join Primitive? Ans. A valid syntax of the Fork and Join Primitive is as given below: Fork Join

Average number of instructions, Consider a processor with a 4-stage pipelin...

Consider a processor with a 4-stage pipeline. Each  time a conditional branch is encountered, the pipeline must be flushed (3 partially completed instructions are lost). Determine

Explain load sharing processor configuration of spc, Explain how a centrali...

Explain how a centralized SPC organization works under load sharing operation. Under load sharing operation, an incoming call is allocated randomly or in a predetermined sequen

What are the role of an operating system, What are the role of an operating...

What are the role of an operating system? Sharing the Processor Virtual Machine: Resource management: Memory Management

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