1. #1
    yannick's Avatar
    Registered
    16/09/02
    Location
    Antwerpen
    Posts
    2,211
    iTrader
    6 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/2

    [JAVA] Decimal to hexadecimal (in byte array)

    Beste,

    Ik zou moeten weten hoe ik op de makkelijkste manier een barcode string (bv. 25678) naar een hexadecimale byte array kan "brengen". Deze barcode wordt ingevoerd in een tekstvak.

    De byte array moet er zo uit zien (mocht ik het manueel doen, wat dus niet mogelijk is mits je niet op voorhand weet welke barcode wordt ingevuld):

    byte b=new byte[4];
    b[0]=(byte) 0x02;
    b[1]=(byte) 0x05;
    b[2]=(byte) 0x06;
    b[3]=(byte) 0x07;
    b[4]=(byte) 0x08;

    Ik dacht om eerst elke char van de string in een int array te steken en zo elke member van deze array te converteren naar een hex, maar bij dit laatste weet ik niet goed hoe eraan moet beginnen.

    Met vriendelijke groeten
    Yannick Wellens
    no votes  

  2. #2
    Parnakra's Avatar
    Registered
    15/04/04
    Location
    Izegem
    Posts
    6,095
    iTrader
    1 (100%)
    Mentioned
    0 Post(s)
    no votes  

  3. #3
    yannick's Avatar
    Registered
    16/09/02
    Location
    Antwerpen
    Posts
    2,211
    iTrader
    6 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/2
    Quote Originally Posted by Parnakra View Post
    This quote is hidden because you are ignoring this member. Show
    Mja, daar heb ik al wa over opgezocht. Maar ik vraag me af hoe ik die string naar ne byte kan krijgen in de vorm van 0x..
    no votes  

  4. #4
    Fraggie's Avatar
    Registered
    17/07/02
    Posts
    9,537
    iTrader
    3 (100%)
    Mentioned
    0 Post(s)
    Reputation
    4/39
    Dat wordt toch altijd binair opgeslaan en als je ze terug oproept is dat in het 10 delig stelsel? Misschien moet je jezelf de vraag stellen of het wel opgeslaan moet worden als een hexadecimaal getal?

    M.a.w. waarom moet het zo opgeslaan worden?
    no votes  

  5. #5
    yannick's Avatar
    Registered
    16/09/02
    Location
    Antwerpen
    Posts
    2,211
    iTrader
    6 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/2
    Quote Originally Posted by Fraggie View Post
    This quote is hidden because you are ignoring this member. Show
    Dat wordt toch altijd binair opgeslaan en als je ze terug oproept is dat in het 10 delig stelsel? Misschien moet je jezelf de vraag stellen of het wel opgeslaan moet worden als een hexadecimaal getal?

    M.a.w. waarom moet het zo opgeslaan worden?
    Omdat ik werk aan een project met NFC enabled studentenkaarten. Ik moet iets op die kaart opslagen en dat moet in hexadecimale getallen zijn. Het moet via die byte array gebeuren die ik als voorbeeld heb gegeven.
    no votes  

  6. #6
    forloRn_'s Avatar
    Registered
    23/11/03
    Location
    Landeurp
    Posts
    1,791
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    10/17
    Je zult de String eerst moeten parsen naar een int en dan wat rekenen. Google vindt kant-en-klare oplossingen hoor.
    no votes  

  7. #7
    BroodRooster's Avatar
    Registered
    10/04/04
    Posts
    812
    iTrader
    6 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/2
    Scanner s = new Scanner(System.in);
    System.out.print("geef een string : ");
    String source = s.next();
    byte[] bytes = source.getBytes("UTF-8");
    System.out.println("string to bytes : "+bytes);
    String string = new String(bytes, "UTF-8");
    System.out.println("byte to string : "+string);


    hiermee kun je je string omzetten naar bytes en dan opnieuw naar string. ik denk dat dit hetgene is wat je zoekt
    Last edited by BroodRooster; 18-04-2010 at 01:34.
    no votes  

  8. #8
    Fraggie's Avatar
    Registered
    17/07/02
    Posts
    9,537
    iTrader
    3 (100%)
    Mentioned
    0 Post(s)
    Reputation
    4/39
    Quote Originally Posted by yannick View Post
    This quote is hidden because you are ignoring this member. Show
    Omdat ik werk aan een project met NFC enabled studentenkaarten. Ik moet iets op die kaart opslagen en dat moet in hexadecimale getallen zijn. Het moet via die byte array gebeuren die ik als voorbeeld heb gegeven.
    Maar die barcode splits je op in cijfer per cijfer, dus gezien je nooit boven de 9 zal komen, is de representatie toch altijd gelijk aan dat van het gewoon dec opslaan?

    (9)16 = (9)10 = (000 1001)2
    .. allemaal het zelfde ..
    (0)16 = (0)10 = (000 0000)2

    Of zie ik het verkeerd?

    Ik zet nu bewust 7 bits bij een Java byte, omdat die altijd signed is?
    no votes  

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Log in

Log in