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

Advantages and drawbacks of mealy and moore machine, What are the advantage...

What are the advantages and drawbacks of mealy and moore machine? Advantages and drawbacks: Into Mealy as the output variable is a function both state and input, changes o

Show the major benefits of microprocessor, Q. Show the Major benefits of mi...

Q. Show the Major benefits of microprocessor? Microprocessor is a complete CPU on a single chip. The major benefits of microprocessor are:  Powerful butCompact; can

What is a message in mqseries, A message is a string of bytes that has mean...

A message is a string of bytes that has meaning to the applications that use it Message = Header(s) + Application Data A message having of a header and the attached applicat

Explain assembly program execution, Q. Explain Assembly program execution? ...

Q. Explain Assembly program execution? An assembly program is written according to a strict set of rules. A word processor or editor is used for keying an assembly program in t

Ai applications, AI Applications Search is a crucial component of an AI...

AI Applications Search is a crucial component of an AI system, and the search functions are performed over large quantities of difficult structured data using unstructured inpu

A subroutine can be terminated unconditionally using exit, A subroutine can...

A subroutine can be terminated unconditionally using EXIT. True.

Explain the race condition, Explain the Race Condition The situation wh...

Explain the Race Condition The situation where various processes access - and manipulate shared data concurrently. The final value of the shared data relies upon which process

Construct a shift register from S-R flip-flops, Construct a shift register ...

Construct a shift register from S-R flip-flops. Explain its working. Ans: S-R Flip-Flop Shift Register: Shift registers can be built through using SR flip-flops. Fig.(a)

Differences between a database index and a match code, What are the differe...

What are the differences between a Database index and a match code? Match code can have fields from several tables whereas an index can have fields from only one table.

Write a verilog code for synchronous and asynchronous reset, Write a Verilo...

Write a Verilog code for synchronous and asynchronous reset? Synchronous  reset, synchronous means clock dependent so reset must not be present in sensitivity disk eg: alway

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