Страницы

Поиск по вопросам

четверг, 18 октября 2018 г.

Что происходит в оперативной памяти при прибавлении 1 к максимальному значению переменной?

Есть int с максимальным значением 2147483647. В оперативке выглядит так: 11111111111111111111111111111111 При прибавлении единицы число превращается в -2147483647 и 01111111111111111111111111111111 Из-за чего Происходит смена именно 1ой ячейки? Как выглядит этот процесс? p.s. буду благодарен тому, кто посоветует подходящую метку


Ответ

Никакой мистики, просто дополнительный код. У вас небольшая ошибка: число 2147483647 в дополнительном коде выглядит как 0111 1111 1111 1111 1111 1111 1111 1111 (31 единица), а -2147483648 - 1000 0000 0000 0000 0000 0000 0000 0000 (единица и 31 ноль).

Комментариев нет:

Отправить комментарий