Объяснить строку кода - C (СИ) (75160)

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток) впервые столкнулся с таким кодом, кто может объяснить что значит >> и зачем там &; if (((a>>14)&1)==1) n++;

Решение задачи: «Объяснить строку кода»

textual
Листинг программы
#include <stdio.h>
#include <stdint.h>
#include <limits.h>
 
#define is_negative(a) ( ( (a) >> ( sizeof(a) * CHAR_BIT - 1 ) ) & 1 )
 
int main(void) {
    int8_t a8 = -1;
    int8_t b8 = 1;
    int16_t a16 = -1;
    int16_t b16 = 1;
    int32_t a32 = -1;
    int32_t b32 = 1;
    
    printf("a8 (%hhd) is %s\n", a8, ( is_negative(a8) ) ? "negative" : "positive or zero");
    printf("b8 (%hhd) is %s\n", b8, ( is_negative(b8) ) ? "negative" : "positive or zero");
    printf("a16 (%hd) is %s\n", a16, ( is_negative(a16) ) ? "negative" : "positive or zero");
    printf("b16 (%hd) is %s\n", b16, ( is_negative(b16) ) ? "negative" : "positive or zero");
    printf("a32 (%d) is %s\n", a32, ( is_negative(a32) ) ? "negative" : "positive or zero");
    printf("b32 (%d) is %s\n", b32, ( is_negative(b32) ) ? "negative" : "positive or zero");
    
    return 0;
}

Объяснение кода листинга программы

  1. Объявлены переменные a8, b8, a16, b16, a32, b32 типа int8_t, int16_t, int32_t соответственно со значениями -1 и 1.
  2. Выведена информация о значении переменной a8 на экран. Значение переменной a8 равно -1.
  3. Выведена информация о значении переменной b8 на экран. Значение переменной b8 равно 1.
  4. Выведена информация о значении переменной a16 на экран. Значение переменной a16 равно -1.
  5. Выведена информация о значении переменной b16 на экран. Значение переменной b16 равно 1.
  6. Выведена информация о значении переменной a32 на экран. Значение переменной a32 равно -1.
  7. Выведена информация о значении переменной b32 на экран. Значение переменной b32 равно 1.
  8. Программа успешно завершена, возврат значения 0.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.857 из 5