07. november 2006 - 14:21Der er
3 kommentarer og 1 løsning
Omregning af digitale værdier
Jeg har en variabel af type long VB6 (4 byte type INIT ) den antar undertiden nogle negative værdier, og så er der problæemer, årsagen er at værdien er "tilblevet" ved at konverterer et op til 28 lang binær værdi til feltet, min opgave er at gendanne den binære værdi, dette er også nemt sålænge variablen indeholder en positiv decimal værdi, men når den er negativ, kan jeg ikke finde ud af hvordan.
et eksempel min ( long ) variabel inholder værdien -24576 værdien et tilblevet ved at der er indlæst en ( sikkert for stor ) POSITIV binær værdi ( jeg tror det der er galt er at når det binære tal når en vis størelse, så tolkes den mest betydende bit som en indikator på om værdien er positiv eller negativ. Hvis jeg har rat så er den rigtige værdi lig med abs(-24576) tillagt den decimale værdi af de mest betydende bit, men hvad er det ?
Tallet -24576 er hex: A000, eller bin: 1010 0000 0000 0000 D.v.s. at sign bittet bit 15 er sat. Tallet unsigned = 40960 altså 65536 + (-24576) D.v.s. at hvis din variabel bliver negativ kan du sige (65536 + Variabel) = Unsigned value
Det virkede også for nemt :-) Håber at shy's svar er brugbart.
Synes godt om
Ny brugerNybegynder
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.