Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Conversioni stringa in binario
Forum - C/C++ - Conversioni stringa in binario

Pagine: [ 1 2 3 4 5 ] Precedente | Prossimo
Avatar
Godrek (Normal User)
Rookie


Messaggi: 60
Iscritto: 04/08/2015

Segnala al moderatore
Postato alle 19:43
Venerdì, 14/06/2019
Salve,
volevo fare un piccolo programmino che prende in input un file di testo txt e lo converte in binario.
Dopodiché un altro programmino che prende in input il file txt con il testo in binario e lo converte in testo.
Il tutto è finalizzato a creare una cifratura XOR di un testo txt, però innanzitutto volevo sapere come convertire in C una stringa in binario.
Grazie.


Chi ti critica poi ti imita
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5862
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 19:57
Venerdì, 14/06/2019
Che vuol dire per te convertire in binario un file? I dati su disco sono sempre scritti in binario (non potrebbe essere diversamente) ma possono essere interpretati in diverso modo.

A parte che tu parli di "stringa" nel titolo, chiarisci bene il problema (e chiarisciti la questione) prima di continuare.

Ultima modifica effettuata da nessuno il 14/06/2019 alle 20:03


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Godrek (Normal User)
Rookie


Messaggi: 60
Iscritto: 04/08/2015

Segnala al moderatore
Postato alle 20:13
Venerdì, 14/06/2019
Ok, faccio un passo indietro.

Tramite la funzione scanf prendo in ingresso una stringa di 8 caratteri.
come faccio a convertire ogni carattere della stringa in ingresso in binario?


Chi ti critica poi ti imita
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5862
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 20:18
Venerdì, 14/06/2019
I caratteri sono conservati in memoria già in binario.

Tu vuoi vedere su console la "rappresentazione binaria del valore ASCII di ogni carattere"?
Ovvero per il singolo carattere

A

carattere A maiuscola vuoi vedere

01000001

?


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Godrek (Normal User)
Rookie


Messaggi: 60
Iscritto: 04/08/2015

Segnala al moderatore
Postato alle 20:31
Venerdì, 14/06/2019
Esattamente


Chi ti critica poi ti imita
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5862
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 20:49
Venerdì, 14/06/2019
Quindi, per cominciare, devi ottenere il valore ASCII del carattere in una variabile numerica.
Serve una variabile unsigned char (ovvero un byte) quindi, se il buffer dei caratteri si chiama vett, il codice del primo carattere lo ottieni con

unsigned char by = (unsigned char)vett[0];

Dopo, a partire dal valore di by, se questo fosse 65, come lo convertiresti in una sequenza binaria?


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Godrek (Normal User)
Rookie


Messaggi: 60
Iscritto: 04/08/2015

Segnala al moderatore
Postato alle 22:15
Venerdì, 14/06/2019
Perché unsigned char? Anche char dovrebbe andare bene visto che ogni lettera in ASCII è un numero positivo compreso tra 65 e 122 e quindi rappresentabile in 8 bit.

Ultima modifica effettuata da Godrek il 14/06/2019 alle 22:17


Chi ti critica poi ti imita
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5862
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 22:42
Venerdì, 14/06/2019
Così puoi trattare anche carattari ASCII con codice superiore a 127


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Godrek (Normal User)
Rookie


Messaggi: 60
Iscritto: 04/08/2015

Segnala al moderatore
Postato alle 1:42
Sabato, 15/06/2019
Ok sono riuscito a fare la conversione di un carattere ASCII in binario nel seguente modo:
#include <stdio.h>

Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5.   unsigned char carattere_inserito;
  6.   int quoziente;
  7.   int resto[8];
  8.   int index;
  9.  
  10.   printf("Inserisci una carattere: \n");
  11.   scanf("%s", &carattere_inserito);
  12.  
  13.   quoziente = carattere_inserito;
  14.  
  15.   printf("La conversione in decimale della lettera %c è: %d\n", carattere_inserito, quoziente);
  16.  
  17.   for(index=7; index>=0; index--)
  18.   {
  19.     resto[index] = quoziente%2;
  20.     quoziente = quoziente/2;
  21.   }
  22.  
  23.   printf("La conversione in binario della lettera %c è: ", carattere_inserito);
  24.  
  25.   for(index=0;index<=7;index++)
  26.     {
  27.       printf("%d", resto[index]);
  28.     }
  29.  
  30.   return 0;
  31. }



Ora come potrei fare a far digitare all'utente una frase del tipo: piero tofy e a restituire il binario corrispondente?

Ultima modifica effettuata da Godrek il 15/06/2019 alle 4:17


Chi ti critica poi ti imita
PM Quote
Pagine: [ 1 2 3 4 5 ] Precedente | Prossimo