Fecha actual Mié Jun 19, 2019 7:41 pm

Fórmula para Alinear una Dirección de Memoria a un Múltiplo Dado

Discusión de problemas matemáticos de una manera adecuada para ser fácilmente implementados en programas de computadora.


Usuarios leyendo este tema: Ninguno

Fórmula para Alinear una Dirección de Memoria a un Múltiplo Dado

Notapor ~ » Lun Nov 19, 2018 7:32 am

Código: Seleccionar todo
((  direccion + (alineacion-1)  )  /  alineacion)  * alineacion

Restar 1 a la alineación deseada
y sumarle la dirección inicial.
Dividir todo eso entre la alineación
multiplicar ese resultado entero
por la alineación para obtener una
dirección alineada a 2, 4, 8, 16 bytes, etc.



A la alineación deseada le restamos 1
y a esto le sumamos la dirección deseada.
Eso nos va a dar un bloque de alineación
extra pero al que le falta 1 para estar
completo.

Con eso siempre vamos a obtener una
dirección alineada igual o mayor a la
inicial.

Tenemos que dividir el valor anterior
entre la alineación que queremos para
obtener el número de bloques completos
de alineación. Siempre que tengamos
una dirección ya alineada o a la que le
falten bytes para estar completa,
vamos a obtener un número de bloques
igual o mayor (mayor en caso de no
estar alineada).

Cuando volvemos a multiplicar por el
tamaño de alineación obtenemos la
dirección a alineada.
Imagen
IP for hosts file (email udocproject@yahoo.com to get updates if website becomes offline):
Código: Seleccionar todo
190.150.9.244 archefire.org



See what I'm doing in real time:
Main Desktop 1
Main Desktop 2
Avatar de Usuario
~
Site Admin
 
Mensajes: 2945
Registrado: Sab Nov 10, 2012 1:04 pm

Volver a Matemática para Programadores

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 3 invitados


cron