/ 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
hvordan laver jeg et byte[] ???
Fra : markymarc


Dato : 12-12-02 15:01

Jeg skal bruge metoden InetAddress.getByAddress(). Den tager som
parameter en ip adr, men som et byte[].
Så er mit problem at hvis jeg vil lave byte[] = {100,100,100,100};
Når jeg prøver at compaile det failer den og siger:
Possible loss of precision.
found : int
required: byte

Kan jeg komme uden om det på en og andenmåde?? Og hvorfor gør den det?
100 kan da for pokker være i en byte, eller hvad ?

På forhånd tak.


 
 
Lasse Westh-Nielsen (12-12-2002)
Kommentar
Fra : Lasse Westh-Nielsen


Dato : 12-12-02 15:24


"markymarc" <markymarc@wildride.dk> wrote in message
news:EE0K9.40$5f1.891@news.get2net.dk...
> Jeg skal bruge metoden InetAddress.getByAddress(). Den tager som
> parameter en ip adr, men som et byte[].
> Så er mit problem at hvis jeg vil lave byte[] = {100,100,100,100};
> Når jeg prøver at compaile det failer den og siger:
> Possible loss of precision.
> found : int
> required: byte
>
> Kan jeg komme uden om det på en og andenmåde?? Og hvorfor gør den det?
> 100 kan da for pokker være i en byte, eller hvad ?

Du skal skrive "0xYY" for at lave en byte, hvor Y er et ciffer eller et
bogstav fra {A, B, ..., F}:


public class ByteTest
{
static byte b = 0x64;

static int i = 100;

public static void main(String[] args)
{
System.out.println(b);

System.out.println(i);

if (i == b) System.out.println("Hurra!");
}
}




markymarc (12-12-2002)
Kommentar
Fra : markymarc


Dato : 12-12-02 15:49

Jeg få stadig samme fejl?

Men tak

Lasse Westh-Nielsen skrev:
> "markymarc" <markymarc@wildride.dk> wrote in message
> news:EE0K9.40$5f1.891@news.get2net.dk...
>
>>Jeg skal bruge metoden InetAddress.getByAddress(). Den tager som
>>parameter en ip adr, men som et byte[].
>>Så er mit problem at hvis jeg vil lave byte[] = {100,100,100,100};
>>Når jeg prøver at compaile det failer den og siger:
>>Possible loss of precision.
>>found : int
>>required: byte
>>
>>Kan jeg komme uden om det på en og andenmåde?? Og hvorfor gør den det?
>>100 kan da for pokker være i en byte, eller hvad ?
>
>
> Du skal skrive "0xYY" for at lave en byte, hvor Y er et ciffer eller et
> bogstav fra {A, B, ..., F}:
>
>
> public class ByteTest
> {
> static byte b = 0x64;
>
> static int i = 100;
>
> public static void main(String[] args)
> {
> System.out.println(b);
>
> System.out.println(i);
>
> if (i == b) System.out.println("Hurra!");
> }
> }
>
>
>


Lasse Westh-Nielsen (12-12-2002)
Kommentar
Fra : Lasse Westh-Nielsen


Dato : 12-12-02 18:03

"markymarc" <markymarc@wildride.dk> wrote in message
news:3l1K9.45$5f1.958@news.get2net.dk...
> Jeg få stadig samme fejl?

Prøv det her, det virker for mig:

"ByteArrayTest.java":
=====================

public class ByteArrayTest
{
static byte[] bytearray = { 0x64, 0x65, 0x66 };

public static void main(String[] args)
{
for (int i=0; i<bytearray.length; i++)
{
System.out.println(bytearray[i]);
}
}
}

Kørsel:
=======

C:\...>java ByteArrayTest
100
101
102

Mvh & GJ

- Lasse



markymarc (13-12-2002)
Kommentar
Fra : markymarc


Dato : 13-12-02 11:22

Hvad så hvis du laver et med tal over 200????


> Lasse Westh-Nielsen skrev:
>
>> "markymarc" <markymarc@wildride.dk> wrote in message
>> news:EE0K9.40$5f1.891@news.get2net.dk...
>>
>>> Jeg skal bruge metoden InetAddress.getByAddress(). Den tager som
>>> parameter en ip adr, men som et byte[].
>>> Så er mit problem at hvis jeg vil lave byte[] = {100,100,100,100};
>>> Når jeg prøver at compaile det failer den og siger:
>>> Possible loss of precision.
>>> found : int
>>> required: byte
>>>
>>> Kan jeg komme uden om det på en og andenmåde?? Og hvorfor gør den det?
>>> 100 kan da for pokker være i en byte, eller hvad ?
>>
>>
>>
>> Du skal skrive "0xYY" for at lave en byte, hvor Y er et ciffer eller et
>> bogstav fra {A, B, ..., F}:
>>
>>
>> public class ByteTest
>> {
>> static byte b = 0x64;
>>
>> static int i = 100;
>>
>> public static void main(String[] args)
>> {
>> System.out.println(b);
>>
>> System.out.println(i);
>>
>> if (i == b) System.out.println("Hurra!");
>> }
>> }
>>
>>
>>
>


Frank Hahn (12-12-2002)
Kommentar
Fra : Frank Hahn


Dato : 12-12-02 15:52

"markymarc" <markymarc@wildride.dk> skrev i en meddelelse
news:EE0K9.40$5f1.891@news.get2net.dk...
> Jeg skal bruge metoden InetAddress.getByAddress(). Den tager som
> parameter en ip adr, men som et byte[].
> Så er mit problem at hvis jeg vil lave byte[] = {100,100,100,100};
> Når jeg prøver at compaile det failer den og siger:
> Possible loss of precision.
> found : int
> required: byte
>
> Kan jeg komme uden om det på en og andenmåde?? Og hvorfor gør den det?
> 100 kan da for pokker være i en byte, eller hvad ?

Et explicit typecast på alle 100 ?
(BYTE)100

Ikke pænt, men hva'.

/Frank



Peter Kirk (12-12-2002)
Kommentar
Fra : Peter Kirk


Dato : 12-12-02 16:30

"markymarc" <markymarc@wildride.dk> wrote in message
news:EE0K9.40$5f1.891@news.get2net.dk...
> Jeg skal bruge metoden InetAddress.getByAddress(). Den tager som
> parameter en ip adr, men som et byte[].
> Så er mit problem at hvis jeg vil lave byte[] = {100,100,100,100};
> Når jeg prøver at compaile det failer den og siger:
> Possible loss of precision.
> found : int
> required: byte

Mener du at:
byte[] b = new byte[]{100,100,100,100};

giver fejl?
Det virker fint for mig.

Peter




markymarc (13-12-2002)
Kommentar
Fra : markymarc


Dato : 13-12-02 10:53



Peter Kirk skrev:
> "markymarc" <markymarc@wildride.dk> wrote in message
> news:EE0K9.40$5f1.891@news.get2net.dk...
>
>>Jeg skal bruge metoden InetAddress.getByAddress(). Den tager som
>>parameter en ip adr, men som et byte[].
>>Så er mit problem at hvis jeg vil lave byte[] = {100,100,100,100};
>>Når jeg prøver at compaile det failer den og siger:
>>Possible loss of precision.
>>found : int
>>required: byte
>
>
> Mener du at:
> byte[] b = new byte[]{100,100,100,100};
>
> giver fejl?
> Det virker fint for mig.


Ja den laver fejl. Bruger 1.4.0 kan det være problemmet????




markymarc (13-12-2002)
Kommentar
Fra : markymarc


Dato : 13-12-02 11:22



markymarc skrev:
>
>
> Peter Kirk skrev:
>
>> "markymarc" <markymarc@wildride.dk> wrote in message
>> news:EE0K9.40$5f1.891@news.get2net.dk...
>>
>>> Jeg skal bruge metoden InetAddress.getByAddress(). Den tager som
>>> parameter en ip adr, men som et byte[].
>>> Så er mit problem at hvis jeg vil lave byte[] = {100,100,100,100};
>>> Når jeg prøver at compaile det failer den og siger:
>>> Possible loss of precision.
>>> found : int
>>> required: byte
>>
>>
>>
>> Mener du at:
>> byte[] b = new byte[]{100,100,100,100};
>>
>> giver fejl?
>> Det virker fint for mig.
>

Hvad så hvis du laver et array med {244,230,199,200}?????


Ukendt (13-12-2002)
Kommentar
Fra : Ukendt


Dato : 13-12-02 12:29

> >> Mener du at:
> >> byte[] b = new byte[]{100,100,100,100};
> >>
> >> giver fejl?
> >> Det virker fint for mig.
> >
>
> Hvad så hvis du laver et array med {244,230,199,200}?????
>

Det kan du ikke. byte er et 8 bits heltal med fortegn. Værdimængden er
[-128;127].



markymarc (13-12-2002)
Kommentar
Fra : markymarc


Dato : 13-12-02 14:35

Jamen gå byte ikke op til 255??


>
> Det kan du ikke. byte er et 8 bits heltal med fortegn. Værdimængden er
> [-128;127].
>
>


Lars Dam (13-12-2002)
Kommentar
Fra : Lars Dam


Dato : 13-12-02 14:38

On Fri, 13 Dec 2002 14:35:08 +0100, markymarc <markymarc@wildride.dk>
wrote:

>Jamen gå byte ikke op til 255??
>
>
>>
>> Det kan du ikke. byte er et 8 bits heltal med fortegn. Værdimængden er
>> [-128;127].

Som manden skrev; -128;127. Der kan i een byte være 256 forskellige
værdier; og hvis du bruger fortegn, så får du ovennævnte værdiområde;
så - nej 255 kan ikke være i an byte med fortegn.

vh. ld


---
"Time is the fire in which we burn"

Thomas Strøm Larsen (14-12-2002)
Kommentar
Fra : Thomas Strøm Larsen


Dato : 14-12-02 18:56

254 ved plus og 255 ved minus
2^0 + 2^1 osv 2^7 men da det første kun angiver om det der minus eller
posetive tal du arbejder med


mvh
thomas

"markymarc" <markymarc@wildride.dk> wrote in message
news:gmlK9.43$u92.1720@news.get2net.dk...
> Jamen gå byte ikke op til 255??
>
>
> >
> > Det kan du ikke. byte er et 8 bits heltal med fortegn. Værdimængden er
> > [-128;127].
> >
> >
>



Michael Banzon (14-12-2002)
Kommentar
Fra : Michael Banzon


Dato : 14-12-02 19:11

"Thomas Strøm Larsen" <tholar30@hotmail.com> skrev i en meddelelse
news:3dfb70c2$0$190$edfadb0f@dread13.news.tele.dk...
> 254 ved plus og 255 ved minus
> 2^0 + 2^1 osv 2^7 men da det første kun angiver om det der minus eller
> posetive tal du arbejder med

WHAT?? Så du mener at værdimængden for byte-typen er:
[-255;254] ??

Altså (og så må du undskylde mig hvis det ikke er det du mener) hvor
%¤&"¤&!¤"&
har du lært matematik!!!

1 byte = 8 bits => mulige værdier = 2^8 = 256 => med fortegn er værdimængden
[-128;127]!

Er vi enige?!?

/ Michael



Thomas Strøm Larsen (14-12-2002)
Kommentar
Fra : Thomas Strøm Larsen


Dato : 14-12-02 19:18

ja i 2^7 er den 128 minus hvor den er 127 i plus som du siger.
men en byte er ikke 2^8 så et det en int

mvh
thomas

"Michael Banzon" <anyone@anywhere.anyhow> wrote in message
news:QtKK9.65896$HU.5139675@news010.worldonline.dk...
> "Thomas Strøm Larsen" <tholar30@hotmail.com> skrev i en meddelelse
> news:3dfb70c2$0$190$edfadb0f@dread13.news.tele.dk...
> > 254 ved plus og 255 ved minus
> > 2^0 + 2^1 osv 2^7 men da det første kun angiver om det der minus eller
> > posetive tal du arbejder med
>
> WHAT?? Så du mener at værdimængden for byte-typen er:
> [-255;254] ??
>
> Altså (og så må du undskylde mig hvis det ikke er det du mener) hvor
> %¤&"¤&!¤"&
> har du lært matematik!!!
>
> 1 byte = 8 bits => mulige værdier = 2^8 = 256 => med fortegn er
værdimængden
> [-128;127]!
>
> Er vi enige?!?
>
> / Michael
>
>



Michael Banzon (14-12-2002)
Kommentar
Fra : Michael Banzon


Dato : 14-12-02 20:37

"Thomas Strøm Larsen" <tholar30@hotmail.com> skrev i en meddelelse
news:3dfb75d6$0$240$edfadb0f@dread13.news.tele.dk...

> ja i 2^7 er den 128 minus hvor den er 127 i plus som du siger.

Det er fordi at man anvender 2-complement tal-system i x86 arkitekturen
(og i "alle" andre vidst også), så pladserne i en byte (0-7) angiver
værdierne:

-128, 64, 32, 16, 8, 4, 2, 1

Som du ser, så er 64+32+16+8+4+2+1=127
hvilket så er det højeste positive tal der kan udtrykkes
med en byte...
og -128 er så det laveste...

> men en byte er ikke 2^8 så et det en int

I alt er der så 256 kombinationer af bits i en byte, altså 2^8.

/ Michael



Peter Kirk (16-12-2002)
Kommentar
Fra : Peter Kirk


Dato : 16-12-02 12:53


"markymarc" <markymarc@wildride.dk> wrote in message
news:EE0K9.40$5f1.891@news.get2net.dk...
> Jeg skal bruge metoden InetAddress.getByAddress(). Den tager som
> parameter en ip adr, men som et byte[].

Er det nemmere at bruge fx,
InetAddress.getByName( "192.168.1.1" );


Peter



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

Månedens bedste
Årets bedste
Sidste års bedste