es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Límites de tamaño originales de archivos ZIP de 2^32 vs 2^32 – 1. ¿Hay un error de 1 en Wikipedia?

Según https://en.wikipedia.org/wiki/ZIP(fileformat)#ZIP64:

El formato .ZIP original tenía un límite de 4 GB (2^32 bytes) en varias cosas (tamaño descomprimido de un archivo, tamaño comprimido de un archivo y tamaño total del archivo), así como un límite de 65,535 (2^16-1) entradas en un archivo ZIP.

¿Es correcto el valor de 2^32? Según mi entendimiento, el valor máximo debería ser el valor máximo posible que puede ser almacenado en un entero sin signo de 32 bits, que es 2^32-1.

Sé que el valor 2^32-1 tiene un significado particular según la especificación de ZIP en https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT (usualmente mencionado como 0xFFFFFFFF), por lo que no quiero asumir nada.

El límite de 2^16-1 para el número de entradas sí me parece correcto, ya que es el valor máximo que puede ser almacenado en un entero sin signo de 16 bits.

Contexto: Estoy escribiendo código para escribir archivos ZIP de manera continua en Python https://github.com/uktrade/stream-zip, así como código para abrir archivos ZIP de manera continua https://github.com/uktrade/stream-unzip, y quiero que ambos manejen correctamente los diversos límites. O si no se puede manejar “correctamente” (digamos si no hay una forma “correcta”), al menos de la manera más razonable posible.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Según la información proporcionada en el enlace de Wikipedia proporcionado, el formato original .ZIP tenía un límite de 4 GB (2^32 bytes) en varias cosas como el tamaño sin comprimir de un archivo, el tamaño comprimido de un archivo y el tamaño total del archivo. Sin embargo, el valor máximo posible en un entero sin signo de 32 bits es 2^32-1, que tiene un significado particular según la especificación ZIP, generalmente mencionado como 0xFFFFFFFF.

    Por lo tanto, parece que el valor de 2^32 mencionado en Wikipedia podría no ser totalmente preciso, y el valor correcto debería ser 2^32-1.

    En cuanto al límite de 65.535 (2^16-1) entradas en un archivo ZIP, parece ser preciso ya que es el valor máximo que se puede almacenar en un entero sin signo de 16 bits. Como experto en TI especializado en Python y tecnologías relacionadas, es importante tener en cuenta estos límites al escribir código para manejar archivos ZIP de manera continua, para garantizar el manejo adecuado de los diversos límites.

Comments are closed.