How to Find Greater of Two Numbers without using Conditional Operator in C

#include <stdio.h>
#include <math.h>

int isGreater(int a, int b)

{
    return (!((a-b) >> (sizeof(a) * 8 >> 1)));
}

#define IS_GREATER(a,b) (!((a-b) >> (sizeof(a) * 8 >> 1)))

#define IS_LOWER(a,b) (((a-b) >> (sizeof(a) * 8 >> 1)))
#define MAXOFTWO(a,b) (a - ((!(IS_GREATER(a,b))*(a-b))))
#define _MAXOFTWO(a,b) ((a+b+(abs(a-b)))/2)
#define __MAXOFTWO(a,b) (a ^ ((a^b) & -(a < b)))
//#define GET_MAXOFTWO(a,b) ((sqrt(a*a+b*b-2*a*b) + a + b)/2)

int main()

{
    printf("Hello, World!\n");
    int a = 123, b = 90;
    printf("%d\n",isGreater(a,b));
    printf("%d\n",IS_GREATER(a,b));
    printf("%d\n",MAXOFTWO(a,b));
    printf("%d\n",_MAXOFTWO(a,b));
    printf("%d\n",__MAXOFTWO(a,b));
    //printf("%d\n",GET_MAXOFTWO(a,b));
    return 0;
}

OutPut:

Hello,World!                                                                                                                                                            
1                                                                                                                                                                    
1                                                                                                                                                                        
123                                                                                                                                                                      
123                                                                                                                                                                      
123

Related Post:


Removing Space from Given String & Different Methods to Count Number of Ones in Given Value

Booting Sequence for Boot Process in Linux

How to count number of 1 or set bits in a given number

What is Segmentation fault ?

How to Access Private Data Members in C++ without using friend function

Process Vs Thread 

How to Add Two Numbers Without Using + Operator in C 

Overview of Function Pointer in C with Example - What is function pointer & how to use it

How to Fork child process with waitpid & execl in linux with c example code

Share on Google Plus

About Kapil Thakar

"I am Kapil Thakar, an Embedded Engineer cum Blogger wants to learn new things. I love to share my knowledge solutions to the problems. Interested in Blogging, Creative-Writing, SEO, Website Creation, Video Making, Editing, Affiliation Programs, Online Making Money."
    Blogger Comment
    Facebook Comment

0 comments :

Post a Comment

Related Posts Plugin for WordPress, Blogger...