Minęło dużo czasu, odkąd ostatni zaprogramowany na poziomie bitów i bajtów i chciał potwierdzić coś wydaje mi się, pamiętam z tamtych czasów:dodając dwa podpisane lub niepodpisane liczby całkowite
Powiedz, mam dwie liczby całkowite o jednakowej długości (1, 2, 4, 8 bajtów, to nie ma znaczenia), i dodaję je: czy bitowy wynik sumy różni się, jeśli są podpisane lub niepodpisane. Innymi słowy: niezależnie od tego, czy są to liczby całkowite z podpisem czy bez znaku, czy bity będą takie same?
Moja intuicja i słaba pamięć mówią mi, że tak, ale chciałem tylko potwierdzić. Dzięki.
IIRC, chociaż wynik wygląda OK, standard C/C++ mówi, że przepełnienie całkowite skutkuje niezdefiniowanym zachowaniem. ** EDIT **: niepodpisana arytmetyka nie przepełnia się i normalnie postępuje zgodnie z oblewaniem. – nhahtdh
@nhahtdh: dzięki; W porządku. Zrobiłem to za pomocą C++, ponieważ pomyślałem, że będzie to dobra publiczność, ale będę używał tego w innym języku. – Eduardo
http://stackoverflow.com/questions/9024826/how-disastrous-is-integer-overflow-in-c – nhahtdh