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 logical address space and physical address space, What is logical a...

What is logical address space and physical address space? The set of all logical addresses generated by a program is known as a logical address space; the set of all physical a

Draw the logic circuit using NOR gates using K-map, Draw the logic circuit ...

Draw the logic circuit using minimizaed equation by K-map for the simplified function using NOR gates only. F (A, B, C, D) = Π M (1, 2, 3, 8, 9, 10, 11,14) ⋅ d (7, 15) Ans

What is floppy drives, Q. What is Floppy Drives? Disks used with a flop...

Q. What is Floppy Drives? Disks used with a floppy disk drive are small removable disks fabricated of plastic coated with magnetic recording material. Disk rotates at 360RPM. F

Explain possible attacks on the wired equivalent privacy, Question : (a...

Question : (a) IEEE802.11 supports two types of network architecture, describe these architectures with the support of diagrams detailing the network components. (b) IEEE80

Applications of linked list, What are the Applications of Linked List are ...

What are the Applications of Linked List are a) Fixed block storage allocation b) garbage collection

Execution of micro-program, The micro-instruction cycle can comprises two b...

The micro-instruction cycle can comprises two basic cycles: the fetch and execute. Here in the fetch cycle address of micro-instruction is produced and this micro-instruction is pu

Asp and asp.net apps run at the same time on the same server, How would ASP...

How would ASP and ASP.NET apps run at the same time on the same server? Both ASP and ASP.net can be run at similar server, becuase IIS has the capability to respond/serve both

What are the various functional verification methodologies, What are the va...

What are the various functional verification methodologies Ans: TLM (Transaction Level Modelling) Linting RTL Simulation (Environment  involving  :  stimulus  generators,

Difference between property get, Set Value is ready to ActiveX Object from ...

Set Value is ready to ActiveX Object from the form. Let Value is retried to ActiveX Object from the form. Get- Assigns the value of an expression to a variable or property.

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