robi dokładnie to samo co zrobiłby dzisiejszy komputer - zapętliła się.
Dlatego też, program komputerowy (w też kalkulator) na początku dzielenia sprawdza, czy nie dzieli przez zero. Jeśli tak, to wyświetl "math error".
@szarikm Nie do końca. Praktycznie każdy procesor z obecnego wieku (a właściwie prawie każdy procesor jaki powstał) wyłapie to na najniższym poziomie. Jeśli mówimy o architekturach wywodzących się z 8086 (czyli wszelkie x86 i x86_64 sięgające aż do 1978 roku), to procesor sprawdza to wewnętrznie i wywoła przerwanie instrukcji, po czym spróbuje wykonać instrukcję korekcyjną na podstawie kodu błędu. Jeśli takiej nie ma, to taki 8086 będzie na przemian próbował dzielić i będzie się przerywał aż zapewnimy mu instrukcję do wykonania w przypadku tego błędu. We współczesnych systemach najczęściej reakcją jest wywołanie wyjątku, który program może złapać i wywalić nam błąd w czytelny sposób, ale równie dobrze programując mikrokontroler można mu kazać przejść do innej instrukcji i zrobić coś innego.
W takiej podstawowej formie dzielenie polega na odejmowaniu mianownika tak długo, aż licznik jest mniejszy od mianownika. Można to zoptymalizować robiąc to krok po kroku na kolejnych rzędach wielkości, na przykład przy 110/2 najpierw sprawdzamy 1(00)>=2(00), później zostaje nam 11(0)>=2(0) i odejmujemy aż zostanie nam 1(0) i przesuwamy się do 10>=2. W efekcie udało nam się odjąć dwójkę 055 razy. Jeśli jednak dzielimy przez 0, to warunek n>=0 jest cały czas spełniony i przez to w nieskończoność odejmujemy 0 od n oczekując, że w końcu n nam się wyczerpie. Jeśli nie sprawdzimy czy mianownik jest zerem, to maszyna się zapętli, więc każdy współczesny komputer na wszelki wypadek to sprawdza.
Powstał ekologiczny silnik.
Heh, jak podzielisz przez zero na komputerze kwantowym to powstanie czarna dziura ;-P
robi dokładnie to samo co zrobiłby dzisiejszy komputer - zapętliła się.
Dlatego też, program komputerowy (w też kalkulator) na początku dzielenia sprawdza, czy nie dzieli przez zero. Jeśli tak, to wyświetl "math error".
@szarikm Nie do końca. Praktycznie każdy procesor z obecnego wieku (a właściwie prawie każdy procesor jaki powstał) wyłapie to na najniższym poziomie. Jeśli mówimy o architekturach wywodzących się z 8086 (czyli wszelkie x86 i x86_64 sięgające aż do 1978 roku), to procesor sprawdza to wewnętrznie i wywoła przerwanie instrukcji, po czym spróbuje wykonać instrukcję korekcyjną na podstawie kodu błędu. Jeśli takiej nie ma, to taki 8086 będzie na przemian próbował dzielić i będzie się przerywał aż zapewnimy mu instrukcję do wykonania w przypadku tego błędu. We współczesnych systemach najczęściej reakcją jest wywołanie wyjątku, który program może złapać i wywalić nam błąd w czytelny sposób, ale równie dobrze programując mikrokontroler można mu kazać przejść do innej instrukcji i zrobić coś innego.
Wynik dzielenia przez 0 jest nieokreślony.
W takiej podstawowej formie dzielenie polega na odejmowaniu mianownika tak długo, aż licznik jest mniejszy od mianownika. Można to zoptymalizować robiąc to krok po kroku na kolejnych rzędach wielkości, na przykład przy 110/2 najpierw sprawdzamy 1(00)>=2(00), później zostaje nam 11(0)>=2(0) i odejmujemy aż zostanie nam 1(0) i przesuwamy się do 10>=2. W efekcie udało nam się odjąć dwójkę 055 razy. Jeśli jednak dzielimy przez 0, to warunek n>=0 jest cały czas spełniony i przez to w nieskończoność odejmujemy 0 od n oczekując, że w końcu n nam się wyczerpie. Jeśli nie sprawdzimy czy mianownik jest zerem, to maszyna się zapętli, więc każdy współczesny komputer na wszelki wypadek to sprawdza.