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

Problems for decision tree learning, Appropriate Problems for Decision Tree...

Appropriate Problems for Decision Tree Learning : However remember there that is a skilled job in "AI" to choose exactly the right learning representation ormethod for a parti

Validate the xml document , As an XML expert you are needed to model a syst...

As an XML expert you are needed to model a system for an online furniture shop. After an interview with the shop manager you have the certain information: The detail of th

State the use of erasable programmable read only memory, Erasable programma...

Erasable programmable read only memory (EPROM) This is a special type of PROM which can be erased by exposing it to ultraviolet (UV) light. Once it has been erased, it can be r

Show the foundation of ALU design, Q. Show the foundation of ALU design? ...

Q. Show the foundation of ALU design? The foundation of ALU design starts with micro-operation implementation. Thus let's first explain how bus can be used for Data transfer m

Cn, What is the basic requirement for establishing VLANs?

What is the basic requirement for establishing VLANs?

What is block started by symbol, What is BSS(Block Started by Symbol)? ...

What is BSS(Block Started by Symbol)? A data showing at the machine level, that has initial values when a program begins and tells about how much space the kernel assigns for t

Enumerate about the specialised hardware, Enumerate about the Specialised h...

Enumerate about the Specialised hardware Specialised hardware such as protected memory or cryptographic memory module for storing and protecting the keys proves to be a good s

Explain isdn address structure and its working, Draw the ISDN address struc...

Draw the ISDN address structure and explain how the addressing works? Address Structure: The ISDN address structure is demonstrated in figure. ISDN number part has a maximum

What is blocking probability, What is blocking probability? Blocking ...

What is blocking probability? Blocking Probability: The blocking probability P is described as the probability like all the servers in system are busy. If all the servers ar

Design a flash project, The only way to respond effectively to a design pro...

The only way to respond effectively to a design project is to first understand the topic well yourself. To do this you need to research the topic and ask yourself a series of quest

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