**To find the maximum number:**Take a and b two numbers and store in c(another number) than check last bit of c using right shift of 31 bit and AND with 1. it will give last bit of c. If last bit is zero means difference of a and b is positive otherwise negative than use given formula to calculate maximum or minimum number.

Note: Last bit of integer is used for sign. if integer is of 32 bits than 32

^{th}bit is used to keep negative or positive sign.

__To find maximum number:__#include<stdio.h>

int maximum_number(int a, int b)

{

int c = a - b;

int k = (c >> 31) & 0x1;

int max = a- k * c;

return max;

}

int main()

{

printf("maximum nuber is %d\n",maximum_number(5,10));

getch();

return 0;

}

**Output:**

Find maximum number |

**To find minimum number:**#include<stdio.h>

int minimum_number(int a, int b)

{

int c = a - b;

int k = (c >> 31) & 0x1;

int min = b + k * c;

return min;

}

int main()

{

printf("minimum nuber is %d\n",minimum_number(10,5));

getch();

return 0;

}

**Output:**

Find minimum number |

nuber?

ReplyDelete