Dzisiaj jest piatek, 05 grudnia 2008 r. 340 dzien roku
Languages:ar | id | bg | ca | ceb | cs | da | de | et | en | es | eo | fr | he | hr | it | ko | lt | hu | nl | ja | no | pl | pt | ru | ro | sk | sl | sr | fi | sv | te | tr | uk | zh






REKLAMA
mp3

Operacja modulo

Operacja modulo to w informatyce znajdowanie reszty z dzielenia jednej liczby przez drugą.

Dla danych dwóch liczb a (dzielna) i n (dzielnik), a modulo n (w skrócie a mod n) jest resztą z dzielenia a przez n. Na przykład wyrażenie "7 mod 3" daje 1, podczas gdy "9 mod 3" daje 0. Wprawdzie zazwyczaj operacja modulo jest wykonywana dla a i n całkowitych, to wiele systemów komoputerowych pozwala na użycie innych typów numerycznych jako operandów.

Zobacz artykuł arytmetyka modularna, który opisuje starszą konwencję stosowaną w teorii liczb.

Operacje modulo w różnych jęzkach programowania
Język Operator Wynik ma ten sam znak co
ActionScript % Dzielna
Ada mod Dzielnik
rem Dzielna
ASP Mod Nieokreślone
C (ISO 1990) % Nieokreślone
C (ISO 1999) % Dzielna
C++ % Nieokreślone[1]
C# % Dzielna
Cobol MOD (parameter-1 parameter-2) Dzielnik
ColdFusion MOD Dzielna
Common Lisp mod Dzielnik
rem Dzielna
Eiffel \\ Dzielna
Microsoft Excel =MOD() Dzielnik
Euphoria remainder Dzielna
FileMaker Mod Dzielnik
Fortran mod Dzielna
modulo Dzielnik
GML (Game Maker) mod Dzielna
div Dzielnik
J |~ Dzielnik
Java % Dzielna
JavaScript % Dzielna
Lua % Dzielnik
MathCad mod(x,y) Dzielnik
Mathematica Mod Dzielnik
MATLAB mod Dzielnik
rem Dzielna
MySQL MOD
%
Dzielna
Objective Caml mod Nieokreślone
Occam \ Dzielna
Pascal (Delphi) mod Dzielna
Perl % Dzielnik[1]
PHP % Dzielna
PL/I mod Dzielnik (ANSI PL/I)
Prolog (ISO 1995) mod Dzielnik
rem Dzielna
Python % Dzielnik
QBasic MOD Dzielna
R %% Dzielnik
RPG %REM Dzielna
Ruby % Dzielnik
Scheme modulo Dzielnik
SenseTalk modulo Dzielnik
rem Dzielna
Tcl % Dzielnik
Verilog (2001) % Dzielna
VHDL mod Dzielnik
rem Dzielna
Visual Basic Mod Dzielna

Są różne sposoby określania reszty, a komputery i kalkulatory mają różne sposoby przechowywania i reprezentowania liczb, więc to co dokładnie jest wynikiem operacji modulo zależy od języka programowania i/lub sprzętu.

W niemal każdym systemie komputerowym współczynnik wynikający z dzielenia jest ograniczany do zbioru liczba całkowitych, a reszta r jest zwykle ograniczona przez 0 \leq r < |n| albo -|n| < r \leq 0. Wybór między dwiema możliwymi resztami zależy od znaku a lub n oraz użytego języka programowania. Niektóre języki programowania, jak na przykład C89, nawet nie definiują wyniku jeśli zarówno n jak i a jest ujemne. Zobacz tabelę.

a modulo 0 jest nieokreślone w większości systemów, choć niektóre określają je jako a. Jeśli definicja jest spójna z algorytmem dzielenia, wtedy n = 0 implikuje  0 \leq r < 0, co jest sprzeczne (tzn. zwykła reszta w tym wypadku nie istnieje).

Reszta może być wyznaczana równaniami, które korzystają z innych funkcji. Jednym z takich użytecznych równań wyznaczania reszty r jest

r = a - n \left\lfloor {a \over n} \right\rfloor

gdzie \lfloor x\rfloor jest podłogą x.

Przypisy

  1. wg ISO/IEC 14882:2003 "(...) operator binarny % wyznacza resztę z dzielenia pierwszego wyrażenia przez drugie (...) Jeśli oba operandy są nieujemne to reszta jest nieujemna; w przeciwnym razie znak reszty jest zależny od implementacji ".

Polska, Dolar, Forex


Wikipedia jest zarejestrowanym znakiem towarowym Wikimedia Foundation
Wszystkie materiay pochodz z Wikipedii, obite s licencj GNU Free Documentation License