Texto simples é binário.
Quando você escreve Hum disco rígido, o cabeçote de gravação não grava duas linhas verticais e uma horizontal no prato, codifica magneticamente os bits 010010001 no prato.
A partir daí, deve ser óbvio que o armazenamento de dados de texto sem formatação ocupa exatamente a mesma quantidade de espaço que o armazenamento de dados binários.
Mas o texto simples é apenas um formato binário em 2
O texto sem formatação pode ser transformado reversivelmente em outros formatos binários. Uma transformação comum é a compactação, que geralmente resulta em uma representação mais compacta, significando menos bits usados para representar a mesma informação.
Dependendo do que você estiver usando o texto sem formatação para representar, você poderá usar diferentes formatos binários para representar as mesmas informações. Isso pode usar mais espaço, pode usar menos.
Por exemplo, os números 5e 1234567podem ser representados em texto sem formatação usando caracteres de dígito, resultando nessas seqüências de bits no disco 3 :
00110101 00000000
00110001 00110010 00110011 00110100 00110101 00110110 00110111 00000000
Como alternativa, você pode usar o complemento de dois bits de 32 bits :
00000000 00000000 00000000 00000101
00000000 00010010 11010110 10000111
Qual é uma representação menos compacta de 5, mas uma representação mais compacta de 1234567.
E há um número literalmente infinito de outras representações que teriam níveis variados de compacidade e flexibilidade, embora, na prática, muito menos do que muitas representações sejam realmente usadas.
1 Assumindo UTF-8. A sequência exata de bits para um caractere depende da codificação específica que você está usando.
2 Ou, na verdade, vários formatos, dadas as várias codificações .
3 Se você está se perguntando quais são esses oito zeros nas extremidades, bem, precisa de uma maneira de saber quanto tempo os dados têm. As opções basicamente se resumem a um marcador (usei isso, via um byte nulo), espaço dedicado ao armazenamento do comprimento (Pascal usou um byte para armazenar o comprimento de uma string) ou um tamanho fixo (usado no complemento subsequente dos dois) exemplo).