Рубрики

C | Типы данных | Вопрос 7

Предположим, что размер символа равен 1 байту, а негативы хранятся в форме дополнения 2

#include<stdio.h>

int main()

{

    char c = 125;

    c = c+10;

    printf("%d", c);

    return 0;

}

(А) 135
(B) + INF
(С) -121
(D) -8

Ответ: (с)
Объяснение: 125 представлено как 01111101 в двоичном виде, и когда мы добавляем 10, то есть 1010 в двоичном, оно становится: 10000111. Теперь, что представляет это число?
Во-первых, вы должны знать, что char может хранить только числа от -128 до 127, так как самый старший бит сохраняется для знакового бита. Поэтому 10000111 представляет отрицательное число. Чтобы проверить, какое число оно представляет, мы находим 2-е дополнение к нему и получаем 01111001, который равен = 121 в десятичной системе. Следовательно, число 10000111 представляет -121.
Тест на этот вопрос

Рекомендуемые посты:

C | Типы данных | Вопрос 7

0.00 (0%) 0 votes