MIPI_AdvancedC_FRTK/Lect1/10_page_18.c

18 lines
632 B
C
Raw Permalink Normal View History

2024-11-14 08:45:50 +03:00
#include <stdio.h>
#include <inttypes.h>
int main(void)
{
int32_t a, sign;//-1 = 0b1111 1111
scanf("%d",&a);
sign = a>>31; // записываем маску >>8 = 1111 1111
printf("%x\n",a);
a = a^sign; // если число отрицательное то инверсия
//~ a ^= sign; // если число отрицательное то инверсия
printf("%x\n",a);
a = a + (sign&0x1); // если число было отрицательное то +1
//~ a += sign&0x1; // если число было отрицательное то +1
printf("%d\n",a);
return 0;
}