Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Неумейка
12 / 11 / 2
Регистрация: 14.02.2009
Сообщений: 89
#1

39+ (-39) будет ли установлен флаг переполнения? - C++

15.10.2009, 01:05. Просмотров 617. Ответов 1
Метки нет (Все метки)

Если выполнить в ячейке 1 байт двоичное сложение чисел 39 и -39 то это приведет к появлению единицы в 9-м разряде за пределом байта, а в самом байте будет 00000000, приведет ли это к установке флага переполнения? И если да, то так объяснить это, ведь результат 39+ (-39) входит в диапазон (-127-128) и не должен вызывать переполнения.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.10.2009, 01:05     39+ (-39) будет ли установлен флаг переполнения?
Посмотрите здесь:

Проверка арифметического переполнения для int C++
C++ проверка переполнения double
СИ++ и контроль переполнения C++
C++ Ошибка переполнения буфера
Простой эксплоит переполнения буфера не работает( C++
Защита от переполнения C++
C++ Ошибка переполнения массива
C++ Отлов исключения переполнения буфера
C++ Флаг переполнения
C++ Избавиться от переполнения буфера (asm)
C++ Как отловить переполнения?
C++ Почему если флаг состояния потока eof поднят, то флаг good опущен?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Monte-Cristo
2786 / 1372 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
15.10.2009, 01:28     39+ (-39) будет ли установлен флаг переполнения? #2
Переполнение будет. Это потому, что машины все считают в дополнительном коде.

Вообщем

39 в двоичном дополнительном коде выглядет как
00100111

-39 в двоичном дополнительном коде выглядет как
11011001

теперь складываем эти два двочиные числа, и получаем: 1|00000000
то есть, 1 в переполнении и 8 нулей. В дополнительном коде, все что поподает в переполнение - отбрасывается.
Yandex
Объявления
15.10.2009, 01:28     39+ (-39) будет ли установлен флаг переполнения?
Ответ Создать тему
Опции темы

Текущее время: 11:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru