hasugoon
Commander
- Registriert
- Juni 2004
- Beiträge
- 2.798
hallo, es geht um folgendes simples fallbeispiel:
ich finde immer 2 unterschiedliche ansätze für die typkonvertierung.
1. bei arithmetischen operationen wird immer mit mindestens int (also signed) gerechnet. (das würde auch das ergebniss erklären)
2. mehr oder weniger schlaue bücher sagen aber auch folgendes: es wird auf der rechten seite immer auf den größten beteiligten typ konvertiert. hier: signed char->unsigned short. das würde allerdings dem ergebniss widersprechen.
da mir der debugger hier nicht wirklich weiterhilft meine frage: wie gehts nun wirklich?
sys: 32bit - compiler vs2005
unsigned short n=20;
signed char c=-2;
n=n+c; //18
ich finde immer 2 unterschiedliche ansätze für die typkonvertierung.
1. bei arithmetischen operationen wird immer mit mindestens int (also signed) gerechnet. (das würde auch das ergebniss erklären)
2. mehr oder weniger schlaue bücher sagen aber auch folgendes: es wird auf der rechten seite immer auf den größten beteiligten typ konvertiert. hier: signed char->unsigned short. das würde allerdings dem ergebniss widersprechen.
da mir der debugger hier nicht wirklich weiterhilft meine frage: wie gehts nun wirklich?
sys: 32bit - compiler vs2005
Zuletzt bearbeitet: