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

What is optical mark recognition, Optical mark recognition (OMR)  OMR ...

Optical mark recognition (OMR)  OMR technology scans a printed form and reads pre-defined positions (where specific fields have been filled in for instance ?-?or _); system re

Explains the various levels of parallel processing, Levels of parallel proc...

Levels of parallel processing We could have parallel processing at four levels. i)  Instruction Level: Most processors have numerous execution units and can execute numero

Define http, Http Hyper Text Transfer Protocol: The WWW protocol that...

Http Hyper Text Transfer Protocol: The WWW protocol that performs the request and regain functions of a server. Generally seen as the first part of a website address. It is t

Standard typewriter for information distribution, Standard typewriter : Yo...

Standard typewriter : You must have seen this manually operated machine. Standard typewriters of various makes such as Remington, Fact, Godrej, etc., are available in the market.

Overflow condition in linked list, Overflow condition in linked list may ha...

Overflow condition in linked list may happen when attempting to Make a node when free space pool is empty.

Give some technical specification for subscriber lines, Give some technical...

Give some technical specification for subscriber lines. Subscriber pairs and exchange pairs are interconnected at the MDF through jumpers. The MDF therefore gives a flexible in

Memory, #all type of memory

#all type of memory

Fundamentals of systems, System is a word which is derived from the Greek w...

System is a word which is derived from the Greek word 'Systema' which means an organized relationship among components. A System can be defined as orderly grouping of interdepen

Zero address instruction format, Zero address instruction format is used fo...

Zero address instruction format is used for  (A) RISC architecture.      (B) CISC architecture.  (C) Von-Neuman architecture.   (D) Stack-organized architecture.

Syntax and semantics - first-order logic, Syntax and Semantics: Propos...

Syntax and Semantics: Propositional logic is prohibited in its expressiveness: so just to represent true and false facts for the world. By a type of extending propositional lo

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