Онлайн компилятор C

#include <stdio.h> int main(void) { int num, abs; unsigned int mask; unsigned int sign_bit; scanf("%d",&num); sign_bit = (num>>31)&1; mask = num>>31; abs = (num ^ mask) + sign_bit; printf("abs(%d) = %d\n",num, abs); return 0; }
1) Этот код вычисляет абсолютное значение целого числа `num` с использованием битовых операций. Он считывает число, определяет его знак, применяет маску и выполняет операции XOR и сложение для получения модуля числа.  

2) Подсказки:  
- Обрати внимание, как используется сдвиг вправо на 31 бит для определения знака числа.  
- Разберись, почему после операции XOR с маской нужно прибавить `sign_bit`.