diff --git a/numeric/narrowing.md b/numeric/narrowing.md index 10d7588..09c6909 100644 --- a/numeric/narrowing.md +++ b/numeric/narrowing.md @@ -92,7 +92,7 @@ int main() { } ``` -Самым удивительным образом этот пример [выводит](https://godbolt.org/z/s1933K) +Самым удивительным образом этот пример [выводит](https://godbolt.org/z/s1933K) ``` float 2 int 1 diff --git a/numeric/overflow.md b/numeric/overflow.md index a08c5fe..09c05b0 100644 --- a/numeric/overflow.md +++ b/numeric/overflow.md @@ -201,7 +201,7 @@ constexpr std::uint16_t IntegerPromotionUB(std::uint16_t x) { static_assert(IntegerPromotionUB(65535) == 1); // won't compile ``` -Несмотря на то что для беззнаковых переполнение определено как взятие остатка по модулю `2^n` и мы используем только беззнаковую переменную, +Несмотря на то, что для беззнаковых переполнение определено как взятие остатка по модулю `2^n` и мы используем только беззнаковую переменную, из-за `integer promotion` в этом [примере](https://godbolt.org/z/GWsaGo) возникает переполнение знакового! числа и вытекающее из этого UB. Справедливости ради, надо заметить, что такое происходит только на платформах, где размер `int` больше `uint16_t` (то есть практически везде в наши дни). ```C++