-
16-04-2010, 16:34 #1Member
- 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 Wellensno votes
-
-
16-04-2010, 16:48 #2no votes
-
17-04-2010, 22:37 #3Member
- Registered
- 16/09/02
- Location
- Antwerpen
- Posts
- 2,211
- iTrader
- 6 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/2
no votes
-
17-04-2010, 23:26 #4
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
-
18-04-2010, 00:08 #5Member
- Registered
- 16/09/02
- Location
- Antwerpen
- Posts
- 2,211
- iTrader
- 6 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/2
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
-
18-04-2010, 00:23 #6Member
- 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
-
18-04-2010, 01:15 #7
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 zoektLast edited by BroodRooster; 18-04-2010 at 01:34.
no votes
-
18-04-2010, 11:34 #8
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

