Bom, uma olhada rápida não faz mal. Embora na maioria das linguagens os operadores funcionem basicamente da mesma forma, existem diferenças sutis dependendo da linguagem.
Por exemplo, ao dividir dois números inteiros, qual o resultado? Em algumas linguagens (Java, C, etc), o resultado é truncado para um inteiro (7 / 2
resulta em 3
), mas em outras o resultado é um float
(em JavaScript e Python, 7 / 2
resulta em 3.5
). Inclusive Python possui o operador //
para a "divisão inteira", ou seja, 7 // 2
resulta em 3
.
Algumas linguagens definem o operador **
para exponenciação, outras não (e geralmente possuem uma função para tal).
O operador %
(resto da divisão) costuma ser o mais divergente quando há números negativos envolvidos. Por exemplo, -7 % 2
pode ser 1
ou -1
dependendo da linguagem.
Cada linguagem pode ter limites para os valores numéricos, e certas operações podem dar overflow. Por exemplo, em Java 2000000000 * 2
resulta em -294967296
, já que o resultado (4 bilhões) ultrapassa o valor máximo de um int
. Em Python isso não ocorre. Cada linguagem possui limites diferentes para tipos diferentes, e isso influi nos resultados de cada operador.
Outro que costuma dar diferença é o +
, que em muitas linguagens também serve para concatenar strings. E mesmo que um dos operandos não seja string, se tiver pelo menos uma, os demais podem ou não ser convertidos automaticamente. Tanto que "1" + 1
resulta em 11
em JavaScript, pois o segundo operando é convertido para string e é feita a concatenação, mas em PHP a string é convertida para número e o resultado é 2
(em PHP, a concatenação de strings é feita com o operador .
então "1". 1
resulta na string "11"
).
Há linguagens que permitem que operadores sejam sobrecarregados, ou seja, definidos para qualquer tipo de objeto, e aí cada caso pode ter um comportamento diferente.
Enfim, embora o básico seja igual, sempre tem essas diferenças sutis, pois operadores é algo que vai além da matemática básica. Por isso é bom sempre dar uma olhada na linguagem específica que vc for usar.