Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Conversione da hex a ascii

    Ciao, sono nuovo della programmazione in java e devo fare un programma in cui devo convertire un array di esadecimali in caratteri ascii... come posso fare???

    Esempio:
    ArrayHEX[0]=11;
    ArrayHEX[1]=22;
    ArrayHEX[2]=33;
    ArrayHEX[3]=44;

    vorrei ottenere i caratteri abcd.

    C'è qualche metodo x farlo in automatico?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Conversione da hex a ascii

    Originariamente inviato da sonic85
    Esempio:
    ArrayHEX[0]=11;
    ArrayHEX[1]=22;
    ArrayHEX[2]=33;
    ArrayHEX[3]=44;

    vorrei ottenere i caratteri abcd.
    No alt. 11, 22, ecc... così come li hai scritti sono decimali ... anche volendo interpretare le righe sopra non come codice "strettamente" in un linguaggio di programmazione ma come intenzione: "assegno 11 esadecimale" ... comunque nessuno dei valori che hai indicato può rappresentare 'a' 'b' 'c' 'd' in ASCII.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    si scusa i veri codici hex sono i seguenti che corrispondono ai caratteri abcd:

    ArrayHEX[0]=61;
    ArrayHEX[1]=62;
    ArrayHEX[2]=63;
    ArrayHEX[3]=64;

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da sonic85
    si scusa i veri codici hex sono i seguenti che corrispondono ai caratteri abcd:

    ArrayHEX[0]=61;
    ArrayHEX[1]=62;
    ArrayHEX[2]=63;
    ArrayHEX[3]=64;
    codice:
    byte[] arr = { 0x61, 0x62, 0x63, 0x64 };
    String s = new String(arr, "US-ASCII");
    System.out.println(s);
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    sono proprio fuso... mi sn dimenticato di dirti che i dati sono stringhe... perchè in pratica vengono generate da questa funzione:

    for(int i=0;i<readBuffer.lenght;i++)
    {
    Integer.toHexString(readBuffer[i]& 255)
    }


    Grazie ancora!

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da sonic85
    mi sn dimenticato di dirti che i dati sono stringhe... perchè in pratica vengono generate da questa funzione:

    for(int i=0;i<readBuffer.lenght;i++)
    {
    Integer.toHexString(readBuffer[i]& 255)
    }
    E cioè hai stringhe singole "61" "62" "63" e "64"??? Ovviamente ignoro il motivo per cui da un byte che già avevi in readBuffer[i] devi ottenere una stringa hex e poi "riparsarla" .... perché è questo che va fatto!!!

    Usa parseByte() di Byte, quello che riceve il 'radix' che in questo caso sarà 16.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.