Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah C Mengendalikan Promosi Operator Binari dengan Tanda Berbeza?
Promosi Operator Binari Apabila Tanda Berbeza
Apabila pengendali binari beroperasi pada operan dengan tanda yang berbeza, standard C menyediakan garis panduan khusus untuk menentukan promosi peraturan dan jenis yang terhasil.
Seksyen 5/9 standard menggariskan "penukaran aritmetik biasa" yang digunakan untuk pengendali sedemikian. Penukaran ini mengikut susunan hierarki:
Menggunakan peraturan ini pada contoh kod yang disediakan:
Contoh 1:
unsigned int one = 1; int max = std::numeric_limits<int>::max(); unsigned int result = max + one;
Memandangkan int yang tidak ditandatangani diutamakan int dalam langkah 5 peraturan, semua operan ditukar kepada int tidak ditandatangani. Oleh itu, keputusan adalah jenis unsigned int.
Contoh 2:
unsigned int us = 42; int neg = -43; int result = us + neg;
Dalam kes ini, peraturan menentukan bahawa kedua-dua operan hendaklah ditukar kepada unsigned int. Walau bagaimanapun, nilai yang terhasil (-1) tidak boleh diwakili dalam int yang tidak ditandatangani. Oleh itu, jenis hasil ungkapan ditakrifkan pelaksanaan mengikut §4.7/3.
Atas ialah kandungan terperinci Bagaimanakah C Mengendalikan Promosi Operator Binari dengan Tanda Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!