MrDatabase - 2 months ago 5x

C Question

How do I programmatically return the maximum of two integers without using any comparison operators and without using

`if`

`else`

Answer

max: // Will put MAX(a,b) into a

```
a -= b;
a &= (~a) >> 31;
a += b;
```

And:

int a, b;

min: // Will put MIN(a,b) into a

```
a -= b;
a &= a >> 31;
a += b;
```

from here.

Source (Stackoverflow)

Comments