Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    613

    conversione stringa in bytes

    Pigliatemi pure per un coglione (non nel vero senso della parola)
    ma mettiamo che io abbia una stringa s="0x53" (0x53 è il valore esadecimale che rappresenta il carattere "S") come faccio a farla diventare una sequenza di bytes (in questo caso 0101/0011)?

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,315
    In che linguaggio?
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    613
    Java,

    scusa è che a forza di postare in forum completamente dedicati al java mi sono dimenticato di indicarlo.

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,315
    Allora... puoi procedere così:

    Assegnare il valore della stringa ad una variabile intera:

    int mioNumero = Integer.parseInt(stringa, base);

    dove base è la base di numerazione in cui è rappresentata la stringa (nel tuo caso 16).

    A questo punto, effettui una conversione in binario. Divisioni successive per 2 e tieni i resti (oppure, più semplicemente, metti il valore in AND bit a bit (&) con le varie potenze di 2).


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    613
    Grazie, intanto ho provato in questo modo ed ho ottenuto una stringa che contiene il valore binario (o con toHexString il valore esadecimale).

    Integer i = new Integer(0);
    String stringa = new String("53");
    int n = i.parseInt(stringa, 16);
    String b = new String(i.toBinaryString(n));

    Ora però se volessi ottenere il carattere rappresentato da 53 in hex? (che poi sarebbe "S") come posso fare?
    Credevo andasse bene il costruttore

    String s = new String(byte[] byte);

    ma mi restituisce il valore in binario!

  6. #6
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Ciao. Non vorrei sbagliare ma per le stringhe c'è il metodo getBytes() che restituisce un array di byte... Inoltre il costruttore String pi = new String ( byte[] a ) funziona io l'ho usato...
    Fammi sapere, ciao
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    613
    Integer i = new Integer(0);
    String stringa = new String("53");
    int n = i.parseInt(stringa, 16);
    String b = new String(i.toHexString(n));
    n=i.parseInt(b);
    String c = new String(b.getBytes());
    /* o anche String c = new String(stringa.getBytes()) ma il risultato non cambia*/
    System.out.println(c);

    c è uguale a 53!!!!
    io voglio che sia "S";

    String c = "\u0053"; questo stampa "S" ma non riesco a comporre la stringa per via del carattere di escape.

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,315
    Non so perchè hai scritto tutto quel codice...
    Quando sei riuscito a convertire la tua stringa in un valore numerico, ti è sufficiente farne il casting a char per ottenere il relativo carattere:
    codice:
    class Prova {
       public static void main(String [] args) {
          Integer i = new Integer(0); 
          String stringa = new String("53"); 
          int n = i.parseInt(stringa, 16);
          System.out.println((char) n); 
       }
    }
    ...se è questo che ti serviva...


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    613
    grazie era proprio questo, sarà l'esame di sabato che mi ha mandato via di testa.
    grazie mille.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.