Avatar billede withli Nybegynder
19. april 2004 - 15:24 Der er 4 kommentarer og
1 løsning

problem med Definition af en int

Jeg har overtaget noget Java kode, og må jo desværre sige at java er ikke mit stærke felt endnu, så jeg går relativt tit i stå, så er det jo smukt at jeg har eksperten
til at spørge til råds.

Jeg er faldet over denne linie i min kode, som jeg ikke rigtigt kan greje.

Har ingen problemer med alt før | tegnet, hvad betyder det i denne kontekst?

final public static int ITEM_TYPE_USER = 0x0100 | Admintype.CODE_ADMIN;
Avatar billede arne_v Ekspert
19. april 2004 - 15:33 #1
final = kan ikke ændres
public = kan tilgåes overalt
static = kun 1 kopi delt af alle instanser af klassen
int = hel tal 32 bit
ITEM_TYPE_USER = navn på variabel (konstant i dette tilfælde)
0x0100 = 256 eller nok snarere bit 8 sat (startende med mindst signifikant 0)
| = binær OR
Admintype.CODE_ADMIN = konstant defineret andet steds
Avatar billede arne_v Ekspert
19. april 2004 - 15:33 #2
Kort sagt laver du en konstant med formentligt 2 bit sat (forudsat at
Admintype.CODE_ADMIN også sætter kun 1 bit).
Avatar billede withli Nybegynder
19. april 2004 - 15:50 #3
Bestemt et smukt svar.

så det det er højst sandsynligt er at jeg et andet sted henne kalder Admintype.CODE_ADMIN for 0x008000, eller noget lignende, og så samtidigt giver jeg 0x0100 med således at jeg ned i ITEM_TYPE_USER sætter noget der minder om 0x008100 eller noget i den stil er det helt skævt?
Avatar billede arne_v Ekspert
19. april 2004 - 16:05 #4
Netop
Avatar billede jakoba Nybegynder
20. april 2004 - 20:57 #5
Det mest sandsynlige kunne gå galt er hvis  Admintype.CODE_ADMIN  er en long. det burde virke hvis du caster den til en int:

final public static int ITEM_TYPE_USER = 0x0100 | (int)Admintype.CODE_ADMIN;
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester