Avatar billede bendixen Novice
03. maj 2001 - 22:03 Der er 7 kommentarer og
1 løsning

Hvordan regner man med hex tal ? (+, AND, Modulo)

Jeg har en text streng som jeg skal lave en checksum på. men hvordan laver man en + og modulo med hex tal.

eks.
\"029 o.s.v.\" => 30h + 32h + 39h + ... = 46Bh
modulo 100h                          =  6Bh
Hex checksum = (100h-6Bh) AND 7Fh    =  15h

Jeg har et eks. hvor disse tal fremkommer men hvordan laver jeg det i VB ?
Avatar billede spectual Nybegynder
04. maj 2001 - 07:08 #1
jeg tror du er nødt til at skære det lidt mere ud i pap hvis nogen skal forstå det...
Avatar billede terry Ekspert
04. maj 2001 - 08:30 #2
You must first convert each HEX value to something that VB understands. Hex values are
represented by preceding then with &H
Example: &H10 is decimal 16.
Once you have done this its easy.

&H10  + &HA = 26
You can then also use the Hex function to convert back to hex and the Mod function to divide two numbers and return only the remainder.

OK?
Avatar billede bendixen Novice
04. maj 2001 - 11:29 #3
OK, i pap.

Jeg har en test streng som jeg skal lave en CHECKSUM på.

Jeg kan godt lave hver text karakter om til en hex værdi. men problemet kommer når jeg vil lægge tallene sammen.

eks. :
strText = \"029\"    \' &H30, &H32, &H39
Hexval = 0

For i = 1 To Len(strText)
  Hexval = Hexval + Hex(Asc(Mid(strText, i, 1)))
Next

Første gang bliver Hexval = 30
Anden gang bliver Hexval = 62
Trede gang bliver Hexval = 101
Dette er en FEJL resultatet er &H9B og ikke 101

Hvordan får jeg det til at at blive det rigtige ?


Håber at dette har uddybet det lidt


Til Terry :
Du har selv skrevet fejlen op : &H10 + &HA = 26 NEJ det er lig med &H1A



MVH
Bendixen
Avatar billede terry Ekspert
04. maj 2001 - 12:15 #4
Waht is the value of strText is it \"029\" and is that in HEX? Or does strText get changed from 029 to &H30 then &H32 and finally &H39?

In my answer 26 is in decimal. You must then convert this to a string variable using the Hex function EG:
dim shex as string

shex = hex(26)
or
sHex = Hex(&H10 + &HA)
Avatar billede bendixen Novice
05. maj 2001 - 18:16 #5
Jeg blev egnig med mig selv om at regne decmal tal for så at regne om til hex tl sidst
Avatar billede bendixen Novice
05. maj 2001 - 18:17 #6
Tak for hjælpen
Avatar billede bendixen Novice
05. maj 2001 - 18:17 #7
Avatar billede terry Ekspert
06. maj 2001 - 10:41 #8
Hey Bendixen thats an easy way of getting out of giving away 200 points!
Why have question on calculating in HEX if it could have been done in DEC?
And how did you convert til HEX, dont tell me Hex(), wasnt that part of my answer?
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