Avatar billede bjering Nybegynder
10. februar 2008 - 14:02 Der er 1 kommentar og
1 løsning

Udrengning af forskel i uints

Hejsa Eksperter.

En hurtig simpel en der driller mig.

kode:

            uint locX = (uint)(terrainPosition.X - 32768); // Get difference from startX (in 64 cells)
            uint locZ = (uint)(terrainPosition.Z - 32768); // Get difference from startZ (in 64 cells)
            uint diffX = locX / 64; // difference amount
            uint diffZ = locZ / 64; // difference amount

Okay, den skal omregne som dette eksempel

hvis terrain start x,z er 32768, 32768 så skulle den give 0,0
hvis terrain start x,z er 32832, 32768 så skulle den give 1,0

MEN, laver jeg så 32768, 32704, giver den et SYGT tal, problemet ligger i

uint locZ = (uint)(terrainPosition.Z - 32768); // Get difference from startZ (in 64 cells)

for hvis den er lavere en 32768, giver denne linie noget med 43764841 og ikke -64 som den skulle.

nogen der ved hvorfor ?

Mange tak
Avatar billede bjering Nybegynder
10. februar 2008 - 14:07 #1
nevermind, fandt fejlen langt om længe xD
Avatar billede arne_v Ekspert
10. februar 2008 - 15:47 #2
u står jo for unsigned, så det ville være meget overraskende hvis du fik -64 !
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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