div
Divide el número de abajo por el de arriba y redondea al entero más cercano (al par en el empate); dividir por cero da 0.
Datos
- Palabra
div- Familia
- Básicos
- Pila entera
- saca 2, pone 1
- Qué hace
- Saca dos números y apila el de abajo dividido por el de arriba, redondeado al entero más cercano (al par en el empate). Dividir por 0 da 0.
- Costo
- Comando básico
- Se ejecuta en
- dentro de un gen: en la condición (cond) y en el cuerpo (start o else)
a b div deja a / b redondeado. Tiene dos particularidades que conviene saber de memoria:
- No trunca, redondea al entero más cercano, y cuando el resultado cae justo en el medio, al par:
7 2 divda 4,5 2 divda 2,100 7 divda 14 y-7 2 divda −4. - Dividir por cero da 0, sin error.
cond
start
7 2 div 50 store
5 2 div 51 store
10 0 div 52 store
stopLas celdas 50, 51 y 52 terminan en 4, 2 y 0.
Lo de dividir por cero tiene un uso conocido en el Bestiario: x dup div vale 1 si x no es cero y 0 si lo es, y con eso se arman condiciones sin condiciones (lo cuenta Los operadores por familia, con el ejemplo de Bardus). Lo de redondear importa al convertir unidades: *.nrg 3 div no es la división entera de otros lenguajes. Si necesitás el resto, está mod.