Guide for Escriptura Binaria
Com abordar aquest problema
Se't donarà un nombre \(N\) i després \(N\) nombres enters separats per espais (cadascun entre 0 i 255, ja \
que has d'escriure'ls com a bytes). Has de crear un fitxer BINARI (no de text) dins la carpeta out amb \
aquests valors, i imprimir per pantalla el nom d'aquest fitxer.
Idea general:
- Llegeix \(N\) i després els \(N\) nombres de l'entrada.
- Obre un fitxer nou dins
outen mode binari d'escriptura (no de text). - Escriu cada nombre com un sol byte (un valor de 0 a 255), no com el text del nombre.
- Tanca el fitxer i imprimeix per pantalla només el nom del fitxer que has creat (per exemple \
out/answer.txt, imprimiriesanswer.txt).
Paranys habituals:
- Si obres el fitxer en mode text i hi escrius amb
print/writenormal, estaràs escrivint els \ caràcters del nombre (per exemple "42" com els dos caràcters'4'i'2'), no el valor binari 42. \ Cal mode binari explícit. - Un byte només pot contenir valors de 0 a 255: si algun nombre de l'entrada no hi cap, revisa bé com \ el converteixes.
- Recorda imprimir només el NOM del fitxer, no la ruta completa
out/....
Pista per a Python
Per escriure bytes cal obrir el fitxer en mode 'wb' (write binary). Un objecte bytes de Python es \
crea directament a partir d'una llista d'enters entre 0 i 255:
n = int(input())
nombres = list(map(int, input().split()))
nom_fitxer = "answer.txt" # tria el nom que vulguis
ruta = "out/" + nom_fitxer
with open(ruta, "wb") as f:
f.write(bytes(nombres))
print(nom_fitxer)
bytes(nombres) converteix la llista d'enters en una seqüència de bytes crus, exactament el que cal \
escriure al fitxer binari.