Seberapa besar UUENCODE membuat file biner?


2

Saya ingat pernah membaca di suatu tempat bahwa file biner yang dikirim yang dilampirkan ke email harus terlebih dahulu UUENCODEd, yang membuat ukuran file jauh lebih besar, karenanya mengapa lebih baik mengirim file melalui beberapa transfer langsung lainnya berarti FTP, Skype, dll.

Berapa besar UUENCODE akan membuat file biner saya?

Jawaban:


4

Jawaban singkat:

Ukuran file yang uuencoded akan sekitar 35% lebih besar dari file asli.


Jawaban panjang:

File Uuencode terlihat seperti ini:

begin 600 filename
*"F9O;R!B87(*"@``
`
end              
  • Itu adalah 7 byte untuk begin, tiga untuk izin, dua untuk ruang pemisah.
  • X byte untuk nama file (tergantung pada nama)
  • Kemudian data disandikan yang sebenarnya. Setiap 6 bit dipetakan menjadi 8 bit (dengan hasil semua karakter ASCII yang dapat dicetak) Ini meningkatkan ukuran menjadi 8 / 6 , atau 1⅓ kali ukuran aslinya.
  • Hasilnya kemudian dipecah menjadi garis-garis 65 karakter sehingga hasilnya akan pada 80 karakter. layar lebar. Ini menambahkan baris baru ekstra per 65 karakter. Dengan demikian meningkatkan ukuran file oleh 1 / 65 th
  • Akhirnya 3 byte untuk end

Jadi kita mendapatkan: 13 byte, plus panjang nama file, ditambah 1 68 / 195 th dari ukuran file asli.

(Itu 68 / 195 th adalah 1⅓ plus 1 / 65 , atau 1 65 / 195 plus 3 / 195 . Ini sangat dekat dengan 35%, itulah sebabnya aturan praktisnya adalah bahwa 'ukuran meningkat sepertiga yang baik).


Anda lupa memperhitungkan karakter SOL / panjang (an M untuk baris "penuh") yang memulai setiap baris data yang disandikan. Pemutusan jalur dapat berupa CR + LF atau hanya LF.
sawdust

Poin bagus. Setiap karakter tambahan per baris akan menambah 1,5% ke ukuran akhir.
Hennes

2

Klien email modern umum akan menggunakan base64, yang akan membuat file sekitar 35% lebih besar, tetapi hanya di dalam email.

Saat ini, base64 biasanya digunakan sebagai gantinya. Setiap byte dari biner asli berisi 8 bit. Base64 dapat menyimpan setara dengan 6 bit data asli dalam setiap byte yang disandikan. Jadi ukuran yang dikodekan adalah 8 / 6s dari yang asli:

8 / 6 = 1.33... = 133% = 33% more

Dan kemudian jeda baris ditambahkan yang menambahkan beberapa persen lagi.

Tentu saja, setelah file diterjemahkan untuk disimpan ke sistem file penerima, file yang didekodekan akan identik dengan aslinya.


2

Meskipun jawaban sebenarnya (seperti yang diberikan oleh @Per Salmi dan @depquid) hanya sedikit lebih dari 33% (3 byte menjadi 4, ditambah akhiran baris, ditambah beberapa housekeeping) Anda tidak perlu khawatir tentang uuencode.

uuencode tanggal dari masa-masa UNIX yang sangat tua, sebelum surat-surat MIME ada. kembali pada hari-hari itu, untuk schlepp byte di dalam lingkungan hanya teks (mis., Mail, netnews / usenet) Anda harus secara manual menyandikan file agar karakter 7-bit aman. Kemudian penerima harus secara manual menyimpan file di suatu tempat, mungkin menyatukan dan memesan multipe mail / postingan, jalankan uudecode (yang cukup pintar untuk mengabaikan apa pun di luar blok BEGIN / END) dan mendapatkan file biner. Tetapi kita tidak perlu melakukan itu lagi, setidaknya tidak untuk surat.

Jika Anda menggunakan email modern, encoding lintas ini sudah terjadi secara otomatis . Elemen-elemen Biner MIME biasanya disandikan base64 (seperti status @depquid).

Jadi, Anda sudah melakukan pengkodean MIME Base64, yang meledakkan file sedikit lebih dari 33% jika Anda ingin tahu tentang hit untuk alokasi bandwidth Anda. Untuk melakukan uuencode / uudecode hanya akan menambah lebih banyak pekerjaan di sisi Anda dan sisi penerima.


0

Saya tidak berpikir Anda bisa tahu persis seberapa besar konten yang akan di-uuen karena tergantung pada konten yang sebenarnya tetapi dinyatakan setidaknya 40% lebih besar dari yang asli di bagian kerugian di Wikipedia .


Bagian kerugian yang Anda sebutkan menyatakan bahwa ini adalah pengkodean 3-byte / 4-byte ukuran-tetap.
Isaac Rabinovitch

Ya, Anda benar, apakah Anda tahu jika zero-padding, header, info nama file, dan pembatas bertambah hingga sesuatu yang signifikan seperti dorongan dari 33% meningkat hingga "setidaknya 40%" yang dinyatakan dalam artikel. Mungkin benar kalau dikatakan paling tidak 33%.
Per Salmi

Artikel harus mengklaimnya meningkat setidaknya 34,87% (dan itu untuk file yang sangat besar di mana ukuran header diabaikan). Keindahan Wikipedia adalah Anda dapat membuat akun dan meningkatkan artikel. (Setelah mengatakan itu, ya, saya juga bisa). ;-)
Hennes
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.