Es ist eine lange Zeit her, seit ich das letzte Mal an der Bits und Bytes Ebene programmiert und wollte etwas, das ich aus diesen Tagen scheinen zu bestätigen, sich zu erinnern:um zwei oder ohne Vorzeichen ganzen Zahlen
sagen, dass ich zwei ganze Zahlen von gleicher Länge haben (1, 2, 4, 8 Bytes; es spielt keine Rolle), und ich füge sie hinzu: unterscheidet sich das Bit-für-Bit-Ergebnis der Summe, wenn sie signiert oder unsigniert sind. Mit anderen Worten: Unabhängig davon, ob sie ganzzahlige Zahlen mit oder ohne Vorzeichen sind, werden die Bits am Ende dieselben sein?
Meine Intuition und meine schwache Erinnerung sagen mir, dass sie es werden, aber ich wollte nur bestätigen. Vielen Dank.
IIRC, obwohl das Ergebnis OK aussieht, besagt der C/C++ - Standard, dass Ganzzahlüberlauf zu undefiniertem Verhalten führt. ** EDIT **: Vorzeichenlose Arithmetik überläuft nicht und folgt normalerweise dem Wrap-Around. – nhahtdh
@nhahtdh: danke; das ist ok. Ich habe es mit C++ getaggt, weil ich dachte, es wäre eine gute Zuhörerschaft, aber ich werde es in einer anderen Sprache verwenden. – Eduardo
http://stackoverflow.com/questions/9024826/how-disastrous-is-integer-overflow-in-c – nhahtdh