#include <windows.h>

typedef signed char SBYTE;

int main()
{
    /* Somme de deux entiers signés */
    SBYTE si = 0x7F; //0x7F -> plus grans entiers signé pour un SBYTE
    SBYTE sj = 0x7F;
    
    si = si + sj;
    printf("\n%ld -> 0x%x\n\n", si, si);
    
    /* Résultat (-2 -> 0xFE) négatif et OF = 1 */
    
    /* Mais aussi avec les non-signé !! */
    BYTE i = 0x7F;
    BYTE j = 0x7F;
    
    i = i + j;
    printf("\n%ld -> 0x%x\n\n", i, i);
    
    /* Résultat (254 -> 0xFE) est positif mais pas d'un point de vue "signé" (0xFE -> -2) donc OF = 1 */
    
    system("pause");
    return 0x0;
}