Amigo Rodrigo:
Tenemos esta
consulta sobre tu problema, también está esta
consulta sobre el mismo problema, y por fin exactamente la misma consulta en este hilo donde estamos.
Te puedo asegurar que por mas veces que copies y pegues el mismo texto no vas a tener una respuesta.
Eso dependerá de los amigos que tengan los conocimientos adecuados, el tiempo necesario disponible o las ganas suficientes de hacerlo.
Ademas nuestras
Reglas del Foro, que te aconsejo que te leas, indican claramente:
- No repitas varias veces el mismo mensaje en distintos foros;
- No insistas repetidamente en un tema para recibir respuestas. Sé paciente;
Por ello te pido lo que te piden las reglas, sé paciente.
Muchas gracias.
En cuanto a tu consulta ...
¿Que quieres decir que no te va? ¿No te redondea? ¿las variables
X e
Y tienen el tamaño suficiente para los valores que manejas (8,16,32 bits)? ¿Son enteros con signo o sin signo?
Si todas las variables son enteras y tienen el tamaño adecuado el resultado debe ser entero,
redondeado (al entero mas próximo) o
truncado (al entero inmediatamente inferior).
Una prueba que puedes hacer es cualificar (
cast) los resultados que deseas obtener, por ejemplo:
y = (int8) 201/93 * x -48 -32;
O utilizar la división entera explícitamente declarada ... (De la ayuda del CCS C)
DIV()
LDIV()
Syntax:
idiv=div(num, denom)
ldiv =ldiv(lnum, ldenom)
idiv=ldiv(lnum, ldenom)
Parameters:
num and denom are signed integers.
num is the numerator and denom is the denominator.
lnum and ldenom are signed longs.
lnum is the numerator and ldenom is the denominator.
Returns:
idiv is an object of type div_t and lidiv is an object of type ldiv_t. The div function returns a structure of type div_t, comprising of both the quotient and the remainder. The ldiv function returns a structure of type ldiv_t, comprising of both the quotient and the remainder.
Function:
The div and ldiv function computes the quotient and remainder of the division of the numerator by the denominator. If the division is inexact, the resulting quotient is the integer or long of lesser magnitude that is the nearest to the algebraic quotient. If the result cannot be represented, the behavior is undefined; otherwise quot*denom(ldenom)+rem shall equal num(lnum).
Availability: All devices.
Y
por último, también puedes hacer tu mismo la prueba dándole valores conocidos a
X e
Y, viendo los resultados después. Y cuando lo tengas claro posteas lo que hayas aprendido para que otros puedan utilizar el buscador del foro y encontrar soluciones a problemas similares.