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

Derive the expression of traffic capacity, Traffic Capacity is given by? ...

Traffic Capacity is given by? Traffic Capacity = Switching capacity × Theoretical maximum load.

Grid security, i just want the experiment to be taken , on Grid Security......

i just want the experiment to be taken , on Grid Security........

What is directory, What is Directory?   The device directory or simply ...

What is Directory?   The device directory or simply called as directory records information-such as name, location, size, and type for all files on that certain partition. The

What is read only memory, Read only memory (ROM) ROM holds the instruct...

Read only memory (ROM) ROM holds the instructions for starting up the computer. This sort of memory can only be read and can't be altered (that implies deleted or written to) a

Give example of stack using encapsulation of OOA, Give example of stack usi...

Give example of stack using encapsulation of OOA An example of the Stack.  A Stack abstraction provides methods like pop (), push (), isEmpty(), isFull(). The Stack can be i

Software engineering, #quest2. Each time a defect gets detected and fixed, ...

#quest2. Each time a defect gets detected and fixed, the reliability of a software production..

What is flag, Flag is a flip-flop used to kept the information about the st...

Flag is a flip-flop used to kept the information about the status of a processor and the status of the instruction implemented most recently A software or hardware mark that si

What do you mean by processor arrangements, Q. What do you mean by Processo...

Q. What do you mean by Processor Arrangements? It is a very common event in data parallel programming to combine many processors to execute specific tasks. To achieve this obje

Explain internal organization of bit cells in a memory chip, Explain with n...

Explain with neat diagram the internal organization of bit cells in a memory chip. Memory cells are usually organized in the form of an array, in which every cell is capable of

What are different types of log records, What are different types of Log re...

What are different types of Log records? V1 and V2.  V1 must be processed before V2.  But, we can have more than single V2 logs

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