Daha ayrıntılı cevap için. C ++ Standardının §5 / 9 bölümünün ne dediğine bakın
Aritmetik veya numaralandırma tipi işlenenleri bekleyen birçok ikili operatör, benzer şekilde dönüşümlere ve sonuç sonuç türlerine neden olur. Amaç, aynı zamanda sonucun türü olan ortak bir tür
vermektir .
Bu desene, aşağıdaki gibi tanımlanan olağan aritmetik dönüşümler denir:
- İşlenenlerden biri uzun iki kat ise, diğeri uzun iki katına dönüştürülecektir.
- Aksi takdirde, işlenenlerden biri çift ise, diğeri ikiye dönüştürülecektir.
- Aksi takdirde, eğer işlenenlerden biri şamandıra ise, diğeri şamandıraya dönüştürülecektir.
- Aksi takdirde, integral tanıtımlar (4.5) her iki işlenende de gerçekleştirilecektir.
- Daha sonra, eğer işlenenlerden biri uzun imzalanmamışsa, diğeri imzalanmamış uzunluğa dönüştürülecektir.
- Aksi takdirde, bir işlenen bir uzun int ve diğer işaretsiz int ise, o zaman uzun bir int işaretsiz bir int'in tüm değerlerini temsil edebiliyorsa, işaretsiz int uzun int'e dönüştürülecektir; aksi takdirde her iki işlenen imzasız uzun int'ye dönüştürülecektir.
- Aksi takdirde, eğer işlenenlerden biri uzunsa, diğeri uzun olana dönüştürülecektir.
- Aksi takdirde, herhangi bir işlenen imzasızsa, diğeri imzasıza dönüştürülecektir.
[Not: aksi takdirde kalan tek durum her iki işlenenin de int olmasıdır]
^
XOR.