|
| 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
| |
|
|