Binário com 0 e 1 é bom, mas binário com apenas 0, ou quase, é ainda melhor!
Escreva um programa que receba uma mensagem recebida como entrada e exiba como saída a mensagem codificada usando esse método.
Regras
Aqui está o princípio de codificação:
A mensagem de entrada consiste em caracteres ASCII (7 bits)
A mensagem de saída codificada consiste em blocos de0
Um bloco é separado de outro bloco por um espaço
Dois blocos consecutivos são usados para produzir uma série de bits de mesmo valor (somente1ou0valores):
Primeiro bloco: é sempre 0ou00. Se for0, então a série contém1, se não, contém0
Segundo bloco: o número de0neste bloco é o número de bits na série
Exemplo
Vamos dar um exemplo simples com uma mensagem que consiste em apenas um caractere: C maiúsculo. C em binário é representado como1000011, então com este método, isso dá:
0 0(a primeira série consiste em apenas um único1)
00 0000(a segunda série consiste em quatro0)
0 00(o terceiro é composto por dois1)
Então C é codificado como:0 0 00 0000 0 00
Segundo exemplo, queremos codificar a mensagem CC (ou seja, os 14 bits10000111000011):
0 0(um único1)
00 0000(quatro0)
0 000(três1)
00 0000(quatro0)
0 00(dois1)
Então CC é codificado como:0 0 00 0000 0 000 00 0000 0 00
poderia me explicar essa parte do código?
String binary = Integer.toBinaryString(ascii);
binary = String.format(“%07d”, Integer.parseInt(binary));
for (int j = 0; j < binary.length(); j++) {
Este trecho de código converte o valor inteiro ascii em uma string binária.
A função Integer.toBinaryString(ascii) retorna a representação binária do número inteiro ascii como uma string. Por exemplo, se o valor de ascii for 67, o resultado da função será a string “1000011”.
Em seguida, o trecho de código binary = String.format("%07d", Integer.parseInt(binary)) formata a string binária para ter sete dígitos (incluindo zeros à esquerda, se necessário), para que todos os caracteres ASCII possam ser codificados usando 7 bits.