Dudas sobre rotar_clave Obligatorio 1

Dudas sobre rotar_clave Obligatorio 1

de Carlos Martin Gruss Sudy -
Número de respuestas: 2

Buenas. Dado el ejemplo de la letra:

clave.valor = 0x71 = 0...01110001

clave.largo = 7

Me queda claro que cuando nrot = 2, el resultado debe ser: 0...01000111, y se mantiene el largo de la clave. 

Me surgen dos preguntas sobre lo que se quiere que haga la función:

  1. Si nrot = 3, veo que el valor de Clave_t debería ser 0...00001111, ¿debemos actualizar también la propiedad valor de la Clave_t devuelta no? En este caso pasaría a valer 4.
  2. En el ejemplo dado con nrot = 2, el largo de la clave no cambia a medida que se rota. Sin embargo, si nrot = 4, ¿la cuarta rotación se sigue haciendo sobre un buffer circular del largo original? ¿O se va actualizando el largo del buffer circular a medida que rotamos y cambia el largo de la clave? Por ejemplo, en este caso, si se hiciera de la primera manera, el valor resultante serìa 0...011110 y de la segunda sería 0...001111. Me imagino que es de la primera manera, pero quisiera confirmar.

Gracias desde ya,

Carlos.

En respuesta a Carlos Martin Gruss Sudy

Re: Dudas sobre rotar_clave Obligatorio 1

de Camilo Joaquin Mariño Cabrera -
Respondo ambas preguntas:

1. Si la clave es:
clave.valor = 0x71 = 0...01110001
clave.largo = 7

Al aplicarle una rotación de nrot=3 el resultado debe ser:
resultado.valor = 0x0F = 0...001111
resultado.largo = 7

Es decir, el campo valor es modificado, pero el largo siempre será el mismo luego de rotar.


2. No termine de entender la pregunta, pero lo que es importante es que el largo de la clave no se modifica. Que tenga 0's en sus bits más significativos no representa que se deba disminuir el largo.


Espero que se hayan entendido las respuestas, si no es así no dudes en volver a preguntar.