Avatar billede pri Nybegynder
06. marts 2002 - 10:24 Der er 7 kommentarer og
1 løsning

kONVERTER DECIMAL TALVÆRDI TIL BINÆR

Jeg kan ikke finde den listige komando som konverterer en decimal talværdi til binær talværdi. Håber at I kender den eller at I har matematikken til at lave det med.
Avatar billede joha0147 Nybegynder
06. marts 2002 - 10:41 #1
http://www.eksperten.dk/spm/177571

Som du kan se her har jeg spurgt om det samme i det her spørgsmål og fået svar! Og det virker faktisk! Alletiders funktion ham der Jelzin har lavet! :D
Avatar billede hemning Nybegynder
06. marts 2002 - 10:46 #2
Et binært tal er jo opbygget af 2^n

f.eks. 149 er det samme som 2^7 + 2^4 + 2^2 + 2^0

Det har jeg fundet det ved at sige hvilket tal er nærmest 149, men stadig ikke højere?
2^8 giver 256, det er for højt, så prøver jeg med 2^7 og det giver 128, så tager jeg 2^7 og finder resten, det er her 21! Så gentager jeg proceduren med resten, 2^5 giver 32, det er for højt, så prøver jeg med 2^4 og det giver 16, så tager jeg 2^4 og finder resten, det er her 5! Så gentager jeg proceduren med resten, 2^3 giver 8, det er for højt, så prøver jeg med 2^2 og det giver 4, så tager jeg 2^4 og finder resten, det er her 1! Og hvad er det der giver 1, ja det er 2^0, så det vælger jeg ;o)
Så decimaltallet 149 er binært 10010101
Så nemt er det ;o)
Avatar billede pri Nybegynder
06. marts 2002 - 10:52 #3
OK! Vil I sende mig koden I bruger. Bare klip den ud af jeres program og læg den som kommentar. Så sparer jeg tid på at kode.
Avatar billede hemning Nybegynder
06. marts 2002 - 10:56 #4
Min kode ligger ope i hovedet ;o) Det er simpel hovedregning, du spurgte jo også om en med matematikken i orden ;o)
Avatar billede joha0147 Nybegynder
06. marts 2002 - 18:18 #5
her er koden! Du skal bare kalde den sådan her:

decimaltallet = dec2bin(Binæretal)
msgbox decimaltallet

Public Function dec2bin(mynum As Variant) As String
Dim loopcounter As Integer
If mynum >= 2 ^ 31 Then
dec2bin = "Too big"
Exit Function
End If
Do
If (mynum And 2 ^ loopcounter) = 2 ^ loopcounter Then
dec2bin = "1" & dec2bin
Else
dec2bin = "0" & dec2bin
End If
loopcounter = loopcounter + 1
Loop Until 2 ^ loopcounter > mynum
End Function
Avatar billede joha0147 Nybegynder
06. marts 2002 - 18:20 #6
eller sådan her skal det være da der skal tjekkes om det er et tal:

if isnumeric(minstreng) then
decimaltallet =  dec2bin(asc(minstreng))
else
decimaltallet = dec2bin(minstreng) end if
Avatar billede joha0147 Nybegynder
08. marts 2002 - 21:14 #7
det jeg har sagt virker! Hvorfor lukker du ikke spørgsmålet?
Avatar billede pri Nybegynder
11. marts 2002 - 08:29 #8
Sorry - Har haft travlt
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