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

Computer network architecture, A protocol is a formal description of messag...

A protocol is a formal description of message formats and the rules two or more machines must follow to exchange those messages. Because TCP (transmission control protocol) and IP

Dick cheney approach, How many "true" terrorists are there in the US?  I do...

How many "true" terrorists are there in the US?  I don't know, but let's suppose that there are 3000 out of a total population of, say, 3,000,000.  That is, one person in 100,000 i

Cg, raster scan display system

raster scan display system

Determine about the authoring software, Determine about the Authoring Softw...

Determine about the Authoring Software Also termed as author ware; this is a program which helps in the writing of hypertext or multimedia applications. Authoring tools general

How to use http and world wide web, Q. How to use Http and World Wide Web? ...

Q. How to use Http and World Wide Web? Http and World Wide Web One of the most frequently used services on the Internet is the World Wide Web (WWW). The application proto

Using aspx view engine, When using aspx view engine, to have a steady look ...

When using aspx view engine, to have a steady look and feel, across all pages of the application, we can build use of asp.net master pages. What is asp.net master pages equal, when

what is code for adding two integers in java?, import java.util.Scanner;  ...

import java.util.Scanner;   class AddNumbers {    public static void main(String args[])    {       int x, y, z;       System.out.println("Enter two integers to calculate their sum

Illustrate left shift register with parallel load, Q. Illustrate Left shift...

Q. Illustrate Left shift register with parallel load? A register that shifts data in one direction only is known as Uni-directional shift register and a register that can shift

Explain the process of inter-register signalling, Explain the process of in...

Explain the process of inter-register signalling. Registers are utilized in common control exchanges to store and analyze routing data. They are given on a common basis is a

What is debate - architecture, What is Debate Debate took place in the ...

What is Debate Debate took place in the 1980s and first half of the 1990s. It was resolved as RISC the winner since it allows more efficient pipelining, results in simpler hard

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