/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Fra byte[4] til int
Fra : Rasmus Toftdahl Oles~


Dato : 15-11-01 18:15

Er der nogen der har nogen referencer til hvordan man converterer fra
byte[4] til en integer ?

Det skulle ikke undre mig om der findes en standard klasse til det,
jeg har bare ikke lige fundet den.

--
Best Regards / Venlig Hilsen
   Rasmus Toftdahl Olesen, System Udvikler, Pohl Data I/S
    rto@pohldata.dk
    http://halfdans.net

 
 
Christian Damsgaard (15-11-2001)
Kommentar
Fra : Christian Damsgaard


Dato : 15-11-01 19:11

Hm.... har du tænkt over at byte i Java er signed - dvs. -128 -> +127?
(ligeså int).

/Christian Damsgaard

"Rasmus Toftdahl Olesen" <rto@pohldata.dk> wrote in message
news:871yj0arc3.fsf@halfdans.lokalnet...
> Er der nogen der har nogen referencer til hvordan man converterer fra
> byte[4] til en integer ?
>
> Det skulle ikke undre mig om der findes en standard klasse til det,
> jeg har bare ikke lige fundet den.
>
> --
> Best Regards / Venlig Hilsen
> Rasmus Toftdahl Olesen, System Udvikler, Pohl Data I/S
> rto@pohldata.dk
> http://halfdans.net



Rasmus Toftdahl Oles~ (15-11-2001)
Kommentar
Fra : Rasmus Toftdahl Oles~


Dato : 15-11-01 20:22

"Christian Damsgaard" <damsgaard@image.dk> writes:
> > Er der nogen der har nogen referencer til hvordan man converterer fra
> > byte[4] til en integer ?
> Hm.... har du tænkt over at byte i Java er signed - dvs. -128 -> +127?
> (ligeså int).
Jeg huskede ikke på det da jeg stillede spørgsmålet, men jeg kom i
tanke om det imens jeg sad og legede med det. Men det gør ikke noget
da det er til en netværksprotokol som er Java i begge ender.

Jeg er kommet frem til følgende mht. byte[4] -> int:
i = b[0] * (256*256*256) + b[1] * (256*256) + b[2] * 256 + b[3];

Nu skal jeg bare have fundet en smart måde at gå den anden vej.

--
Best Regards / Venlig Hilsen
   Rasmus Toftdahl Olesen, System Udvikler, Pohl Data I/S
    rto@pohldata.dk
    http://halfdans.net

Martin Kristensen (19-11-2001)
Kommentar
Fra : Martin Kristensen


Dato : 19-11-01 12:57


"Rasmus Toftdahl Olesen" <rto@pohldata.dk> skrev i en meddelelse
news:87n11nalgm.fsf@halfdans.lokalnet...
> "Christian Damsgaard" <damsgaard@image.dk> writes:
> > > Er der nogen der har nogen referencer til hvordan man converterer fra
> > > byte[4] til en integer ?
> > Hm.... har du tænkt over at byte i Java er signed - dvs. -128 -> +127?
> > (ligeså int).
> Jeg huskede ikke på det da jeg stillede spørgsmålet, men jeg kom i
> tanke om det imens jeg sad og legede med det. Men det gør ikke noget
> da det er til en netværksprotokol som er Java i begge ender.
>
> Jeg er kommet frem til følgende mht. byte[4] -> int:
> i = b[0] * (256*256*256) + b[1] * (256*256) + b[2] * 256 + b[3];
>
> Nu skal jeg bare have fundet en smart måde at gå den anden vej.
>

b[0]=i>>24;
b[1]=(i>>16)&0xff;
b[2]=(i>>8)&0xff;
b[3]=i&0xff;

Smart nok?

/Martin




Jesper Søndergaard J~ (23-11-2001)
Kommentar
Fra : Jesper Søndergaard J~


Dato : 23-11-01 23:10

> > Jeg er kommet frem til følgende mht. byte[4] -> int:
> > i = b[0] * (256*256*256) + b[1] * (256*256) + b[2] * 256 + b[3];
> >
> > Nu skal jeg bare have fundet en smart måde at gå den anden vej.
> >
>
> b[0]=i>>24;
> b[1]=(i>>16)&0xff;
> b[2]=(i>>8)&0xff;
> b[3]=i&0xff;
>

Det kunne også gøres således:
int i = (b[0] << 24) + (b[1] << 16) + (b[2] << 8) + b[3];
byte b[] = {(byte)(j>>24),(byte)(j>>16),(byte)(j>>8),(byte)j};

Jesper






Filip Larsen (15-11-2001)
Kommentar
Fra : Filip Larsen


Dato : 15-11-01 21:42

Rasmus Toftdahl Olesen skrev

> Er der nogen der har nogen referencer til hvordan man converterer fra
> byte[4] til en integer ?

Se på de to interface java.io.DataInput og DataOutput, samt deres standard
implementering java.io.DataInputStream og DataOutputStream. De benytter sig
dog bare almindelig bitskift:

int i = (b1 << 24) + (b2 << 16) + (b3 << 8) + (b4 << 0);


Mvh,
--
Filip Larsen <filip.larsen@mail.dk>




Jacob Nordfalk (19-11-2001)
Kommentar
Fra : Jacob Nordfalk


Dato : 19-11-01 00:05




> Er der nogen der har nogen referencer til hvordan man converterer fra
> byte[4] til en integer ?

byte b[] = {1,2,3,4};

int res = 0x01000000 * b[0] + 0x010000 * b[1] + 0x0100 * b[2] + b[3];




> Det skulle ikke undre mig om der findes en standard klasse til det,
> jeg har bare ikke lige fundet den.

Ikke såvidt jeg ved.


--
Jacob Nordfalk

Soren 'Disky' Reinke (19-11-2001)
Kommentar
Fra : Soren 'Disky' Reinke


Dato : 19-11-01 09:08


"Jacob Nordfalk" <nordfalk@mobilixnet.dk> skrev i en meddelelse
news:3BF83E8F.BB6012C3@mobilixnet.dk...
>
>
>
> > Er der nogen der har nogen referencer til hvordan man
converterer fra
> > byte[4] til en integer ?
>
> byte b[] = {1,2,3,4};
>
> int res = 0x01000000 * b[0] + 0x010000 * b[1] + 0x0100 * b[2] +
b[3];
>

Brug bitforskydning istedet for multiplikation,

--
With many Thanks

Soren ' Disky ' Reinke ICQ #1413069
http://www.disky-design.dk/fish
Remove IHSYD from email address when replying by email



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408526
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste