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

Data structure, How does dynamic memory allocation help in managing data

How does dynamic memory allocation help in managing data

Explain about aggregations, OLAP can process difficult queries and give the...

OLAP can process difficult queries and give the output in less than 0.1 seconds, for it to achieve like performance OLAP uses aggregations. Aggregations are built by aggregating an

What are different control function categories, What are different control ...

What are different control function categories. Explain. In several switching systems, the control subsystem may be an integral part of the switching network itself. This syst

Why is TCP called end-to-end protocol, Why is TCP called end-to-end protoco...

Why is TCP called end-to-end protocol? TCP is termed as an end-to-end protocol as this provides a connection directly by an application in one computer to an application on a r

Find the generating function, Find the generating function to denote the nu...

Find the generating function to denote the number of ways the sum 9 can be acquired while 2 distinguishable fair dice are tossed and the first shows an even number and the second s

Explain the instruction decode, Q. Explain the Instruction Decode? Ins...

Q. Explain the Instruction Decode? Instruction Decode: This phase is performed under control of Control Unit of computer. The Control Unit determines the operation which is t

Explain the hamiltonian path, What is Hamiltonian path?  A Hamiltonian ...

What is Hamiltonian path?  A Hamiltonian path in a directed graph G is a directed path that goes by each node exactly once. We consider a special case of this difficulty where

Script in multi user mode, What Component of LoadRunner would you use to pl...

What Component of LoadRunner would you use to play Back the script in multi user mode? Ans) The Controller component is used to playback the script in multi-user mode. This is c

Decoder, how to make a dec oder

how to make a dec oder

What are the objectives of usb, What are the objectives of USB? a) Simp...

What are the objectives of USB? a) Simple b) Low cost c) Easy to use d) Supports wide range of data transfer characteristics e) Plug and play mode of operation

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