Напълно теоретично систематизиране:
Приемаме, че i е число, което се представя по някакъв начин в определен брой битове (най-общо казано). Независимо от конкретния начин за това представяне, съответен брой битове x могат да съберат крайно множество числа (хайде да се огранича с челочислени типове) и нека максималното от тези числа е y.
Случай 1.: x не може да се мени по време на изпълнение на програмата.
Тогава да видим какво става, когато i = y и искаме да му добавим 1.
Подслучай 1.1.: Променяме стойността на i. Тъй като не можем да представим число по-голямо от y, променената стойност е строго по-малка от y. Положителна, отрицателна, нула. Според последните 3 подподслучая, може да се направи извод за продължителността на цикъла.
Подслучай 1.2.: Не променяме стойността на i. И в този вариант има следната логика: за число z>y, y е по-добро приближение на z от кое да е число, по-малко от y.
Случай 2.: x може да се мени по време на изпълнение на програмата. При достигане на i=y и опит за добавяне на 1, броя битове, представящи i се увеличава, което позволява представянето на числа, по-големи от y, но все пак по-малки от някакво ново y1. Този процес може да се продължи до свършване на наличните битове. Тогава може да се процедира по различни начини, например подобно на подслучаи 1.1. и 1.2.
Това е което си мисля за момента. Ще се радвам да споделиш с какво не си съгласен и кое смяташ за откровени глупости. Приемам и коментари от всички други, но разчитам да са с обяснения, така че поне да науча нещо, ако се окаже, че в момента съм пълна скръб.
Пфу, писна ми да пиша.
Green Peas!
|