На сайте онлайн (человек): 72 
|  |
|
 | |
Пусть меня поправят, если кто знающий всплывет . :-) Суть явления пере... |  |
|  |
 | |
|
Terran Conflict (X3TC) / Форум / Курилка / ТрактирЪ "День дурака"
|
| pusher писал(а):Пусть меня поправят, если кто знающий "всплывет".  |
| |
Суть явления переполнения счетчика в том, что любой счетчик (или регистр - это неважно) имеет свою разрядность. Этой разрядностью определяется максимальное число, которое данный счетчик или регистр может хранить/обрабатывать.
Доступный пример: счетчик километража в спидометре твоего пепелаца. Если в нем 6 разрядов (перед запятой), то его максимальное значение - 999 999 км. Дальше он переполнится. Максимальное значение легко подсчитать по формуле:
max = xn - 1, где x - основание системы счисления, а n - кол-во разрядов счетчика (разрядность)
Счетчик у тебя десятичный, кол-во разрядов - 6. Получаем:
max = 106 - 1 = 999 999
То же самое происходит с компьютерными переменными, которые тоже имеют разрядность. Только там используется двоичная система счисления. Байт - это 8 бит. Т.е. 8 двоичных разрядов. И если переменная у нас целочисленная четырехбайтная, то для хранения значения числа у нас имеется 4 х 8 = 32 разряда (бита).
По приведенной выше формуле мы можем легко вычислить, что в такой переменной мы сможем хранить числа со значением не выше 232 - 1 = 4 294 967 295
Что это значит? А то, что если расстояния между объектами вычислять в миллиметрах, то при расстоянии между объектами 4 294 967 295 мм (что составляет чуточку менее 4 295 км) - наш результат перестанет влезать в 4 байта.
Переполнение счетчика - это достаточно широкое понятие, означающее нехватку разрядности для корректного произведения каких-либо вычислений на некоем этапе. Между прочим, пресловутая "проблема 2000", от которой в конце прошлого века обильно какало кирпичами человечество - тоже проблема переполнения счетчика.
Кстати, у искусственного ограничения счета игрока в старых иксах двумя миллиардами ноги растут тоже из борьбы с переполнением счетчика. Дело в том, что четырехбайтные переменные тоже бывают разные. В некоторых случаях один из битов отводится для знака числа. Тогда такая переменная сможет хранить значения от -2 147 483 647 до +2 147 483 647. Вот и обрезали "до круглого".
Ну а Дине в свете вышесказанного могу только поаплодировать. Думаю, если ему доведется когда-нибудь услышать про эффект утенка, он немедленно бросится искать утенка. :lol:
| pusher писал(а):P.S. eliseeff, между прочим, хоть и не тонет, но и его тоже временами уносит куда-то дней на двадцать так. |
| |
То, что не тонет, прекрасно уносится по трубам простым нажатием кнопки.  |
|
дерево темы → ТрактирЪ "День дурака"
ТрактирЪ "День дурака" »
Список игр
|  |
|  |
 |  |  | |
| | | |
|  |