Skip to content

Principios de representación de datos: codificación, almacenamiento y transmisión

Prologo

Cuando envias una foto a un amigo, un mensaje por WeChat, o descargas un juego de varios GB, como llega esa informacion a traves de medio mundo intacta a tu pantalla? Este capitulo se centra en una pregunta que suele confundir a los principiantes: por que el archivo que recibi se convirtio en caracteres ilegibles? A partir de esta pregunta, descubriremos los tres pilares fundamentales de la computacion: codificacion, almacenamiento y transmision.

Que aprenderas en este articulo?

Despues de completar este capitulo, obtendras:

  • Capacidad de diagnostico de caracteres ilegibles: al enfrentar "archivo con caracteres raros", poder analizar la causa desde la perspectiva de la codificacion
  • Conciencia multiplataforma: saber por que hay que prestar atencion al formato de codificacion y al endianness al intercambiar datos
  • Vision global de la codificacion: entender como la computadora representa todo con 0 y 1 -- desde texto hasta imagenes y objetos complejos
  • Base para aprendizaje futuro: sentar las bases para protocolos de red, formatos de archivo y serializacion
CapituloContenidoConcepto clave
Capitulo 1Codificacion de caracteresASCII, UTF-8, GBK
Capitulo 2Almacenamiento de datosBinario, endianness
Capitulo 3Transmision de datosSerializacion, compresion

0. Problemática de la descodificación incorrecta y codificación de datos

Imagina que recibes un archivo importante de un colega, lo abres con doble clic y esta lleno de caracteres extranos como "浣犲ソ" o "ä½ å¥½".

La verdad es que la gran mayoria de los supuestos "archivos danados" tienen una unica explicacion -- tu computadora "no encontro el diccionario correcto".

Comprendimiento central: Diccionarios desalineados

Los bytes (secuencias de 0 y 1) no tienen significado absoluto por si mismos. Son las reglas de codificacion creadas por humanos las que les dan significado.

Si el remitente uso el diccionario UTF-8 para traducir caracteres chinos a numeros y tu intentas leer esos numeros con el diccionario GBK, el resultado sera caracteres ilegibles.

你收到的文件内容(字节流)
0xE40xBD0xA00xE50xA50xBD
用什么规则来「读」它?
正确(UTF-8)
你好
发件人用 UTF-8 存储了「你好」,你也用 UTF-8 读,当然正确。
核心领悟:字节本身没有含义,编码规则决定了字节变成什么字。发件人用 UTF-8 存,你用 GBK 读,当然面目全非。

1. Visión general de la codificación de datos

La codificacion de datos (Encoding) es crear un "diccionario bidireccional" que mapee informacion del mundo real (texto, color, sonido) a 0 y 1 que la computadora puede entender.

1.1 De texto a numeros: De ASCII a Unicode

Primera etapa: El pequeno mundo de ASCII

Cuando se invento la computadora, los estadounidenses pensaron que solo existian 26 letras, numeros y simbolos de puntuacion, asi que crearon un diccionario muy delgado llamado ASCII. Solo definio 128 simbolos.

Segunda etapa: La era de los reinos divididos

Cuando la computadora llego al mundo, todos descubrieron que los caracteres chinos son decenas de miles, y un solo byte no era suficiente. China creo GBK, Japon creo Shift_JIS... El mundo cayo en el caos.

Tercera etapa: Unicode unifica todo

Los expertos en computacion se sentaron juntos y crearon Unicode, que asigna un numero unico a cada caracter, emoji incluido. UTF-8 es la regla de almacenamiento mas popular de Unicode: ingles usa 1 byte, chino usa 3 bytes.

字符Unicode 码点UTF-8 字节字节数
U+4F60
0xE40xBD0xA0
3 字节
U+597D
0xE50xA50xBD
3 字节
U+0020
0x20
1 字节
HU+0048
0x48
1 字节
eU+0065
0x65
1 字节
lU+006C
0x6C
1 字节
lU+006C
0x6C
1 字节
oU+006F
0x6F
1 字节
字符数8
UTF-8 总字节数12
平均每字符1.5 字节
提示:英文字母在 UTF-8 中只占 1 字节,常用汉字占 3 字节,Emoji 占 4 字节。这就是为什么处理中文文本时,“字符数”和“字节数”是两个完全不同的概念。

1.2 Principios de codificación multimedia (imagen y audio)

  • Codificacion de imagenes: Una foto se compone de millones de pixeles. Asignamos un numero a cada color (como #FF0000 para rojo).
🖼️ 图片是如何变成数字的?(悬停在像素方块上看看)
💻 计算机实际看到的:
#F3F4F6#F3F4F6#F3F4F6#F3F4F6#F3F4F6#F3F4F6#F3F4F6#F3F4F6#F3F4F6#3B82F6#3B82F6#F3F4F6#F3F4F6#3B82F6#3B82F6#F3F4F6#F3F4F6#3B82F6#3B82F6#F3F4F6#F3F4F6#3B82F6#3B82F6#F3F4F6#F3F4F6#F3F4F6#F3F4F6#F3F4F6#F3F4F6#F3F4F6#F3F4F6#F3F4F6#3B82F6#F3F4F6#F3F4F6#F3F4F6#F3F4F6#F3F4F6#F3F4F6#3B82F6#F3F4F6#3B82F6#F3F4F6#F3F4F6#F3F4F6#F3F4F6#3B82F6#F3F4F6#F3F4F6#F3F4F6#3B82F6#3B82F6#3B82F6#3B82F6#F3F4F6#F3F4F6#F3F4F6#F3F4F6#F3F4F6#F3F4F6#F3F4F6#F3F4F6#F3F4F6#F3F4F6
将鼠标悬停在左侧画布的方块上
💡 原理解析:一张 1080p 的高清壁纸,其实就是 207 万 个像左边这样密密麻麻的小色块组成的。计算机把这两百多万个颜色的编号(如 #FF0000)按顺序记录下来,图片就变成了几百万个数字的集合。
  • Codificacion de audio: El sonido es una onda. Si medimos la altura de esta onda 44,100 veces por segundo (muestreo) y registramos los valores, el sonido continuo se convierte en una serie de numeros discretos.
声音是如何变成数字的?(拖拽滑块调整采样率)
低音质 (严重失真)高音质 (贴近原声)
转译后的数字(高度):
0530-520530-520
说明:灰色的虚线是真实的连贯声波(大自然的模拟信号)。蓝色柱子是我们每隔一段时间去测量它的高度(数字信号)。采样频率越密集,记录下来的数字就越多,恢复出来的声音就越清晰逼真,但产生的文件也随之飙升。

2. Puente de almacenamiento: Antes de enviar, hay que guardarlo en algun lugar

Despues de codificar los datos, antes de enviarlos, debemos almacenarlos. Hay una ley de hierro del hardware: cuanto mas rapido es el almacenamiento, mas caro es y menor es la capacidad.

L0CPU 寄存器极快
L1CPU 缓存(Cache)很快
L2内存(RAM)
L3SSD(固态硬盘)较快
L4机械硬盘(HDD)
L2内存(RAM)
访问速度几十 ~ 100 纳秒
典型容量几 GB ~ 几百 GB
单价(每GB)适中(约 ¥30/GB)
生活类比:你打开的浏览器标签页——断电就没了,但当前工作全在这里。
实际用途:运行中的程序、操作系统、当前打开的文件都住在内存里。内存不够了→程序卡顿甚至崩溃。
提示:越快越贵,越慢越大。CPU 缓存极快但只有几 MB;机械硬盘虽慢但便宜又能存 TB。操作系统会自动在各层之间搬运数据——这叫存储层次结构

El sistema operativo actua como un administrador de almacen extremadamente inteligente:

  1. Guarda peliculas y juegos en almacenamiento lento pero grande (SSD o disco duro)
  2. Cuando juegas, mueve los datos necesarios a la memoria rapida (RAM)
  3. Cuando cierras el juego, limpia la memoria para otros usos

3. Visión general de la transmisión de datos

3.1 Transmision en hardware y LAN

Dentro del chasis o entre computadoras cercanas, enfrentamos un desafio puramente fisico. Hoy en dia, USB Type-C, PCIe y otros interfaces usan transmision serial (un solo canal principal).

选择传输方式,然后点"发送数据包"
Tx
发送方
10110010
1 条线
Rx
接收方
已发送0 / 8 位
传输速率1 位/次
状态就绪
提示:等等,串行不是更慢吗?
表面上是的——但现代串行接口(USB 4、PCIe)传输频率高达每秒 数百亿次,而并行线路之间会产生 信号串扰(Crosstalk),反而限制了速度。所以高速接口全面转向了串行。

3.2 Transmision WAN e Internet

Cuando tus datos deben llegar a un servidor en otro pais, atraviesan cables submarinos, estaciones base y enrutadores. El desafio aqui es la tolerancia a fallos.

  1. Segmentacion en paquetes: La red corta el video en miles de "paquetes de datos" (~1500 bytes cada uno)
  2. Suma de verificacion (Checksum): Se calcula un codigo de verificacion antes de enviar
  3. Retransmision TCP: Si un paquete se pierde o se dana, el receptor solicita su reenvio

Gracias a este mecanismo TCP (Protocolo de Control de Transmision), incluso en WiFi inestable, los archivos descargados siempre estan 100% intactos.


4. Caso práctico: flujo completo de codificación, almacenamiento y transmisión

📸 照片上传的完整旅程从按下快门到云端备份,数据经历了什么?
1
编码
2
存储
3
传输
🔢编码阶段等待执行
☀️
光线
物理信号
📷
传感器
CMOS/CCD
📊
RAW 数据
24MB / 4860万像素
🗜️
JPEG 压缩
有损压缩
📄
JPEG 文件
3.2MB
第一步:编码 — 把光变成数字
1相机传感器把光信号转换成 RGB 数值(每个像素 3 × 8 bit = 24 bit)
2整张照片 4860 万像素 × 24 bit ≈ 140 MB 的原始数据
3JPEG 算法分析像素相似性,去掉人眼不敏感的信息,压缩到 3 MB

5. Tabla de terminologia

TerminoExplicacion
Bit (b)La unidad mas pequena, solo puede ser 0 o 1
Byte (B)8 Bits juntos. Unidad basica de tamano de archivo
Character SetEl "indice del diccionario", define que caracteres existen
EncodingLa "regla de almacenamiento", determina que bytes corresponden a cada caracter
RAMMemoria de trabajo rapida pero volatil
SSDDisco de estado solido, almacenamiento permanente rapido
Serial / ParallelSerial = un canal en cola; Paralelo = multiples canales juntos
ChecksumCodigo de verificacion adjunto a los datos transmitidos
TCPProtocolo de Control de Transmision, garantiza entrega 100% intacta

Resumen

  • Por que el mismo archivo se ve ilegible cuando lo recibes? Los datos no estan danados, solo tu software uso el diccionario equivocado (problema de codificacion).
  • Por que los cables Type-C son mas delgados pero mas rapidos? Porque antes eran multiples carruajes en paralelo (paralelo), ahora es un tren de alta velocidad en via dedicada (serial).
  • Por que los juegos grandes tardan en cargar? Porque necesitan mover decenas de GB del disco lento a la memoria rapida.

La esencia de la computacion es simple: convertir (codificar), almacenar (guardar), y enviar (transmitir) toda la informacion como impulsos electricos.