Oppure

Loading
16/05/14 7:59
Dice
Ho un problemino: io ho gia fatto la conversione da testo ad ASCI binario ( a -> 1100001).

E per farlo ho fatto così:

foreach (char c in this.txtPlainText.Text)
                this.txtBit.Text += Convert.ToString((int)c, 2);


Il mio problema è che non riesco a fare il contrario (1100001 -> a) :(

Come posso fare?
aaa
16/05/14 8:25
La conversione la modificherei in modo da inserire gli 0 che mancano a sinistra per raggiungere gli 8 bit

            foreach (char c in txtPlainText.Text)
                txtBit.Text += Convert.ToString((int)c, 2).PadLeft(8, '0');


Fatto questo, per l'altra conversione, puoi scrivere

            int z=0, cn=0;
            foreach (char c in txtBit.Text)
            {
                z *= 2;
                z += (c - '0');
                if (++cn == 8)
                {
                    cn = 0;
                    txtPlainText.Text += Convert.ToChar(z);
                    z = 0;
                }
            }
16/05/14 16:39
Dice
Per il fatto di usare 7 bit invece di 8 va bene, perchè seguo la tabella dei caratteri ASCII "ristretta", che usa appunto solo 7 bit.
Puoi dirmi come fare se uso solo 7 bit?
aaa
16/05/14 18:08
Aggiungere un bit a 0 per ottenerne 8 non fa nessuna differenza.

In ogni caso per 7 bit le modifiche mi sembrano chiare ... guarda la PadLeft e la if (++cn ...