Pertanyaan yang diberi tag «integer-overflow»


4
(-2147483648> 0) mengembalikan true dalam C ++?
-2147483648 adalah bilangan bulat terkecil untuk tipe bilangan bulat dengan 32 bit, tetapi tampaknya akan meluap dalam if(...)kalimat: if (-2147483648 > 0) std::cout << "true"; else std::cout << "false"; Ini akan dicetak truedalam pengujian saya. Namun, jika kita menggunakan -2147483648 ke integer, hasilnya akan berbeda: if (int(-2147483648) > 0) std::cout …


5
Mengapa perilaku integer overflow unsigned didefinisikan tetapi integer overflow yang ditandatangani tidak?
Overflow integer yang tidak ditandai didefinisikan dengan baik oleh standar C dan C ++. Misalnya, standar C99 ( §6.2.5/9) menyatakan Suatu perhitungan yang melibatkan operan tak bertanda tidak pernah dapat meluap, karena hasil yang tidak dapat diwakili oleh tipe integer tak bertanda yang dihasilkan dikurangi modulo angka yang satu lebih …


15
Bagaimana menghindari kelebihan dalam expr. A * B - C * D
Saya perlu menghitung ekspresi yang terlihat seperti:, di A*B - C*Dmana tipenya: signed long long int A, B, C, D; Setiap angka bisa sangat besar (tidak meluap tipenya). Walaupun A*Bbisa menyebabkan overflow, pada saat yang sama ekspresi A*B - C*Dbisa sangat kecil. Bagaimana saya bisa menghitungnya dengan benar? Sebagai contoh:, …
161 c++  c  integer-overflow 




8
Pemeran unsigned-to-signed yang efisien menghindari perilaku yang ditentukan oleh implementasi
Saya ingin mendefinisikan fungsi yang mengambil unsigned intargumen sebagai dan mengembalikan intmodulo UINT_MAX + 1 yang kongruen ke argumen. Upaya pertama mungkin terlihat seperti ini: int unsigned_to_signed(unsigned n) { return static_cast<int>(n); } Tapi seperti yang diketahui pengacara bahasa, casting dari unsigned ke signed untuk nilai yang lebih besar dari INT_MAX …



1
Apakah nilai char diatur ke CHAR_MAX dijamin untuk membungkus CHAR_MIN?
Kode saya: #include <stdio.h> #include <limits.h> int main() { char c = CHAR_MAX; c += 1; printf("CHAR_MIN=%d CHAR_MAX=%d c=%d (%c)\n", CHAR_MIN, CHAR_MAX, c, c); } Keluaran: CHAR_MIN=-128 CHAR_MAX=127 c=-128 () Kita melihat bahwa ketika kita menambah charset variabel ke CHAR_MAX, itu membungkus sekitar CHAR_MIN. Apakah perilaku ini dijamin? Atau apakah …
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.