Запитання з тегом «numeric-conversion»

6
Чому дорівнює 0 <-0x80000000?
У мене нижче проста програма: #include &lt;stdio.h&gt; #define INT32_MIN (-0x80000000) int main(void) { long long bal = 0; if(bal &lt; INT32_MIN ) { printf("Failed!!!"); } else { printf("Success!!!"); } return 0; } Умова if(bal &lt; INT32_MIN )завжди вірна. Як це можливо? Це добре працює, якщо я зміню макрос на: #define …

7
Чи ефективніше проводити перевірку діапазону, кидаючи uint, замість перевірки на від’ємні значення?
Я натрапив на цей фрагмент коду у вихідному коді списку .NET : // Following trick can reduce the range check by one if ((uint) index &gt;= (uint)_size) { ThrowHelper.ThrowArgumentOutOfRangeException(); } Мабуть, це ефективніше (?) Ніж if (index &lt; 0 || index &gt;= _size) Мені цікаво, як обгрунтовувати цей фокус. Чи …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.