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

Discuss the advantages of expression tree, Discuss its advantages over the ...

Discuss its advantages over the other evaluation techniques. The expression tree is determined by using a post-order traversal of the expression tree as given here: 1. If such

Explain about registers, Q. Explain about Registers? A register is a gr...

Q. Explain about Registers? A register is a group of flip-flops that store binary information and gates that controls when and how information is transferred to register. An n-

Elucidate in brief the functions of the clock generator chip, Elucidate in ...

Elucidate in brief the functions of the clock generator chip, 8284. 8284 Clock generator: 8284 is an ancillary component to the microprocessors. Without clock generator, many

How to create dlq rules table, DLQ - Dead Letter Queue If an applicati...

DLQ - Dead Letter Queue If an application tries to put a message to one more application and if it is not delivered then it goes to the DLQ. So DLQ is not anything but all und

Why does microprocessor contain rom chips?, Microprocessor have ROM chip be...

Microprocessor have ROM chip because it have instructions to implement data. It have the monitor program which not only include implementation instruction but also interfacing

Explain the race around condition, Explain the Race Around Condition? C...

Explain the Race Around Condition? Consider the inputs of the JK flipflop j=1 and k=1 and Q=0 when a clock pulse of width tp is applied the output will change from 0 to 1 after

Explain COMS inverter, Explain CMOS Inverter with the help of a neat circui...

Explain CMOS Inverter with the help of a neat circuit diagram. Ans: CMOS Inverter: The fundamental CMOS logic circuit is an inverter demonstrated in Fig.(a). For above

Scanning tips, Don't scan at more resolution than needed. This saves both D...

Don't scan at more resolution than needed. This saves both Disk and time Space. Typically itisn't useful to scan at more than optical resolution because it adds no new informa

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