4. 295·351 само по себе не должно делать переполнения (у нас ВОСЕМНАДЦАТЬ бит рабочих и один переполненный). И даже один бит, как видите, в запасе. Только когда сложим, один бит переполнится и его выкинем.
1. Повторяю, переполненный бит просто уходит.
2. Я не вижу 295·351 = 1'1001'0100'0111'1001₂. Проверяйте умножение.
3. Корректировка |X|+|Y| должна идти со сдвигом в 9 бит. А не 11.
Я пока вижу, что система путает адреса. Там, где нижний бит должен быть 0, там 1, и наоборот. Такое бывает и на уровне дешифратора матрицы, потому предположил, что это он.
Видяха не менялась — потому или что-то с видеопамятью, или с видяхиным генератором изображения.
На кабель грешили, потому что при нехватке частоты видяха снижает полосу пропускания, отданную на цвет, а вот каким раком — не очень в курсе. Но точно не таким.
Телевизор никогда не выдаст 160 Гц, потому как-то работает.
Варианты.
RAMDAC (или как он там сейчас называется) видяхи.
Отвал чипа видяхи на каком-то из выходных штырей.
Дешифратор монитора.
Есть пара вопросов.
В том же видеорежиме игра оставляет монитор или немного не на той частоте?
Точно комп зависает, а не пропадает изображение и продолжает работать?Теоретически такое может быть с FreeSync.
cpp_beginner, Это значит, что для проверки модуля числа и сравнения с «волшебной» константой, чтобы запустить ту или иную ветку, используются только верхние 32 бита. А для окончательных вычислений — ну понятно, все 64.
Просто посмотрите (скажем, в Википедии), как устроен float/double. Если надо очень грубо сравнить double с константой, можно взять верхние четыре байта и сравнить только их.
Dyikot, Операция следования, которая в Си была хаком (позволяла впихнуть кучу кода там, где допустим один оператор), вот так сработала в шаблонах Си++: она двухместная, и позволяет обработать всю пачку махом. Но только по одному параметру. Независимо от того, что вызываем — более простые версии той же функции или нечто другое.
Dyikot, Из-за того, что они разбирают несколько первых параметров, а для остальных вызывают версию с меньшим числом параметров — и это был главный способ это сделать в Си++11, и он удобнее всего, чтобы, например, перевести printf с манипуляции стеком на шаблоны.
Для двухместной операции с Си++ вроде 14 (а в таком синтаксисе — это 17) можно сделать условно a1+a2+a3+…+aN.
UPD. Забыл про ближнюю адресацию — обычно используется в режимах с сегментной адресацией (читай: в стандартном x86), и она означает «сегмент наш, смещение X». Это тоже был аналог адресации от IP.
Rustam2002, Символы Θ и Ω, НЯЗ, придумал Дональд Кнут на основе известных из муть-анализа символов Ландау. Но чтобы «подпереть» функцию снизу, потребовалась неотрицательность.
Rustam2002, Пустая функция — нет такого понятия.
У любой асимптотически неотрицательной функции множество Θ непустое.
Потому что как минимум включает её саму.