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

Xml can play when dynamically generating html pages , Explain the role that...

Explain the role that XML can play when dynamically generating HTML pages from a relational database? Ans) Even if student has never participated in a project involving this typ

History of information technology and organisations, History of Information...

History of Information Technology and Organisations The increasing sophistication in information systems and the growth in their use have been influenced by three main factors

Why gateways are used during mail transfer, Why Gateways are used during ma...

Why Gateways are used during mail transfer? Email using SMTP effort best while both the sender and the receiver are on the internet and can hold TCP connections in between send

Explain Not recently used page replacement algorithm, Not Recently Used Pag...

Not Recently Used Page Replacement Algorithm The not recently used abbreviated as NRU page replacement algorithm works on the subsequent principle: while a page is referenced,

Define bootstrap loader, Define bootstrap loader? The ROM portion of ma...

Define bootstrap loader? The ROM portion of main memory is required for storing an initial program known as bootstrap loader. It is a program whose function is to start the com

Why a function cannot call a task, Why a function can n ot call a task ...

Why a function can n ot call a task As functions doesn't consume time,it can do any operation which doesn't consume time. Mostly tasks are written that consumes time. So a ta

Dynamic memory allocation function, Name the dynamic memory allocation func...

Name the dynamic memory allocation function? Three dynamic memory allocation functions are: a) malloc, b) calloc and c) free.

Explain the recording mode for web vuser script, We use VuGen to make a Vus...

We use VuGen to make a Vuser script by recording a user performing typical business processes on a customer application. VuGen makes the script by recording the activity among the

Write short note on quantization, Write short note on Quantization. Qua...

Write short note on Quantization. Quantization: This is the first step in PCM. The whole amplitude range of the modulating signal is divided in a number of standard levels term

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