aquí:
dirección base :
Una dirección base es una ubicación única en el almacenamiento primario (o memoria principal) que sirve como punto de referencia para otras ubicaciones de memoria llamadas direcciones absolutas.
- Cuando los ISP hablan de invertir en una mejor infraestructura, ¿qué quieren mejorar específicamente? ¿Cuáles son los cuellos de botella?
- ¿Cómo funciona el rastreo de paquetes?
- ¿Cómo va a conectarse ISRO de nuevo a Chandrayaan-1, ya que perdieron la conexión el 29 de agosto de 2009?
- ¿Cómo se puede verificar si un puerto UDP está abierto a otro servidor?
- ¿La velocidad de carga alguna vez interfiere con la velocidad de descarga?
Para obtener una dirección absoluta, se agrega un valor de desplazamiento específico (o desplazamiento) a la dirección base. En el almacenamiento primario, todas las direcciones comprenden literalmente secuencias de bits de longitud fija que representan números enteros positivos generalmente expresados en forma hexadecimal. Por ejemplo, una dirección base puede indicar el comienzo de un programa cargado en el almacenamiento primario. La dirección absoluta de cada instrucción de programa individual podría especificarse agregando un desplazamiento a la dirección base.
El nombre de la matriz es la dirección base.
#include
vacío principal()
{
char s [] = “gato”;
int i;
para (i = 0; s [i]; i ++)
printf (“\ n% c% c% c% c”, s [i], * (s + i), * (i + s), i [s]);
}
Responder –
cccc
aaaa
tttt
Explicacion:
El nombre de la matriz es la dirección base de la matriz, aquí ‘s’ contiene la dirección base de una matriz.
‘i’ es el número de índice / desplazamiento desde la dirección base.
La matriz arr [i] se puede representar como –
arr [i] = * (nombre de matriz + desplazamiento)
= * (arr + i)
= Valor en (nombre de matriz + desplazamiento)
= Valor en (Dirección base + Desplazamiento)
Del mismo modo, podemos concluir que:
s [i] = * (s + i)
i [s] = * (i + s)
Considere el ejemplo anterior con un ejemplo práctico, supongamos que tenemos una matriz que tiene la dirección inicial 1000
Ahora, en este caso, la matriz ‘s’ representa una matriz de caracteres, por lo que podemos decir que ‘s’ contiene una dirección base de una matriz de caracteres.
Representación Explicación Expresión Valor
s [i] Primer elemento de la matriz * (s + 1) ‘a’
i [s] Primer elemento de la matriz * (s + 1) ‘a’
* (s + i) Primer elemento de la matriz * (s + 1) ‘a’
* (i + s) Primer elemento de la matriz * (s + 1) ‘a’
Cálculo de la dirección de memoria en una matriz :
Cálculo de direcciones en una (una) matriz de dimensiones:
La matriz de un elemento de una matriz dice “A [I]” se calcula utilizando la siguiente fórmula:
Dirección de A [I] = B + W * (I – LB)
Dónde,
B = Dirección base
W = Tamaño de almacenamiento de un elemento almacenado en la matriz (en bytes)
I = Subíndice del elemento cuya dirección se encuentra
LB = Límite inferior / Límite inferior del subíndice, si no se especifica, suponga 0 (cero)
Ejemplo:
Dada la dirección base de una matriz B [1300… ..1900] como 1020 y el tamaño de cada elemento es de 2 bytes en la memoria. Encuentre la dirección de B [1700] .
Solución:
Los valores dados son: B = 1020, LB = 1300, W = 2, I = 1700
Dirección de A [I] = B + W * (I – LB)
= 1020 + 2 * (1700-1300)
= 1020 + 2 * 400
= 1020 + 800
= 1820 [Ans]
Cálculo de dirección en doble (dos) matriz dimensional: –
Mientras se almacenan los elementos de una matriz 2-D en la memoria, se les asignan ubicaciones de memoria contiguas. Por lo tanto, una matriz 2-D debe ser linealizada para permitir su almacenamiento. Hay dos alternativas para lograr la linealización: Row-Major y Column-Major.
La dirección de un elemento de cualquier matriz dice ” A [I] [J] ” se calcula en dos formas como se indica a continuación:
(1) Sistema principal de fila (2) Sistema principal de columna
Sistema principal de filas:
La dirección de una ubicación en Row Major System se calcula utilizando la siguiente fórmula:
Dirección de A [I] [J] = B + W * [N * (I – Lr) + (J – Lc)]
Sistema principal de columna:
La dirección de una ubicación en el sistema principal de columna se calcula utilizando la siguiente fórmula:
Dirección de la columna A [I] [J] Major Wise = B + W * [(I – Lr) + M * (J – Lc)]
Dónde,
B = Dirección base
I = Subíndice de fila del elemento cuya dirección se encuentra
J = subíndice de columna del elemento cuya dirección se encuentra
W = Tamaño de almacenamiento de un elemento almacenado en la matriz (en bytes)
Lr = Límite inferior del índice de la fila / fila de inicio de la matriz, si no se da por supuesto, suponga 0 (cero)
Lc = Límite inferior de la columna / índice de la columna de inicio de la matriz, si no se da por supuesto, suponga 0 (cero)
M = Número de fila de la matriz dada
N = Número de columna de la matriz dada
Importante: por lo general, se proporciona el número de filas y columnas de una matriz (como A [20] [30] o A [40] [60]) pero si se da como A [Lr- – – – – Ur, Lc- – – – – Uc] . En este caso, el número de filas y columnas se calcula utilizando los siguientes métodos:
El número de filas ( M ) se calculará como = (Ur – Lr) + 1
El número de columnas ( N ) se calculará como = (Uc – Lc) + 1
Y el resto del proceso seguirá siendo el mismo que el requerido (Row Major Wise o Column Major Wise).
Ejemplos:
Q 1 . Una matriz X [-15 ……… .10, 15 …………… 40] requiere un byte de almacenamiento. Si la ubicación inicial es 1500, determine la ubicación de X [15] [20].
Solución:
Como puede ver aquí, el número de filas y columnas no se da en la pregunta. Entonces se calculan como:
Número o filas dicen M = (Ur – Lr) + 1 = [10 – (- 15)] +1 = 26
Número o columnas dicen N = (Uc – Lc) + 1 = [40 – 15)] +1 = 26
(i) Cálculo de la columna principal sabio de la ecuación anterior
Los valores dados son: B = 1500, W = 1 byte, I = 15, J = 20, Lr = -15, Lc = 15, M = 26
Dirección de A [I] [J] = B + W * [(I – Lr) + M * (J – Lc)]
= 1500 + 1 * [(15 – (-15)) + 26 * (20-15)] = 1500 + 1 * [30 + 26 * 5] = 1500 + 1 * [160] = 1660 [Respuesta]
(ii) Cálculo de la fila mayor sabio de la ecuación anterior
Los valores dados son: B = 1500, W = 1 byte, I = 15, J = 20, Lr = -15, Lc = 15, N = 26
Dirección de A [I] [J] = B + W * [N * (I – Lr) + (J – Lc)]
= 1500 + 1 * [26 * (15 – (-15))) + (20-15)] = 1500 + 1 * [26 * 30 + 5] = 1500 + 1 * [780 + 5] = 1500 + 785
= 2285 [Resp.]
de la fuente: -Cálculo de la dirección de memoria en una matriz
El nombre de la matriz C es la dirección base – c4learn.com
¿Qué es la dirección base? – Definición de WhatIs.com