Я много раз делал подписанное переполнение, но каждый раз с турбонаддувом. Например:
#include <stdio.h>
void main() {
int i = 100000;
printf("%d", i);
getch();
}
Результатом является -31072
, что является ожидаемым результатом, если циклическое завершение выполнено. В двоичном формате 100000(dec)
равен 11000011010100000
, а последние 16 бит хранятся как 1000011010100000
. В представлении с двумя дополнениями 1000011010100000
равно -31072
.