Dezimal nach Binär und zurück...
Dezimal nach Binär und zurück...
Hallo Leutz...
Brauche wieder einmal eure Hilfe zu einem kleinen Problemchen!
Diesmal dreht es sich um die Ansteuerung eines selbstgebastelten
28 Kanal Thyristorgesteuerten Schaltinterfaces, welches über den
Parallelport mittels der inpout32.dll von Rechner aus gesteuert werden
soll.
Ich suche jetzt nach einem Weg, Dezimal in Binär umzuwahdeln und
umgekehrt also z.B. 32="11111100" bzw. "11111000"=32. Hat da einer
eine Idee?
Brauche wieder einmal eure Hilfe zu einem kleinen Problemchen!
Diesmal dreht es sich um die Ansteuerung eines selbstgebastelten
28 Kanal Thyristorgesteuerten Schaltinterfaces, welches über den
Parallelport mittels der inpout32.dll von Rechner aus gesteuert werden
soll.
Ich suche jetzt nach einem Weg, Dezimal in Binär umzuwahdeln und
umgekehrt also z.B. 32="11111100" bzw. "11111000"=32. Hat da einer
eine Idee?
Hi,
eine richtung habe ich schon
siehe: Ergebnis$ = Bin(Wert)
eine richtung habe ich schon
siehe: Ergebnis$ = Bin(Wert)
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Neue Funktion ValB("Binär-String")
FF 
Code: Alles auswählen
Procedure.l ValB(s.s)
result.l = 0
l = Len(s)
For i = l To 1 Step -1
If Mid(s,i,1) = "1"
result + Pow(2, l - i)
EndIf
Next i
ProcedureReturn result
EndProcedure
Debug ValB("10000000")
Debug ValB("00001000")

Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
oder etwas schneller
FF 
Code: Alles auswählen
Procedure.l ValB(s.s)
result.l = 0
add.l = 1
For i = Len(s) To 1 Step -1
If Mid(s,i,1) = "1"
result + add
EndIf
add << 1
Next i
ProcedureReturn result
EndProcedure
Debug ValB("10000000")
Debug ValB("00001000")
; 32 Bit Max
Debug ValB("10000000000000000000000000000000")

Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
- NicTheQuick
- Ein Admin
- Beiträge: 8808
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Noch schneller

Code: Alles auswählen
Binaer.s = InputRequester("Binär -> Dezimal", "Geben sie eine Binärzahl ein.", "")
Dezimal = 0
*z.BYTE = @Binaer
While *z\b
a = *z\b - 48
Dezimal << 1
Dezimal + a
*z + 1
Wend
MessageRequester("Binär -> Dezimal", "Binärzahl: " + Binaer + #CRLF$ + "Dezimalzahl:" + Str(Dezimal))
Warum nich gleich so? 

Code: Alles auswählen
Binaer.s = InputRequester("Binär -> Dezimal", "Geben sie eine Binärzahl ein.", "")
Dezimal = 0
*z.BYTE = @Binaer
While *z\b
Dezimal << 1 + *z\b - 48
*z + 1
Wend
MessageRequester("Binär -> Dezimal", "Binärzahl: " + Binaer + #CRLF$ + "Dezimalzahl: " + Str(Dezimal))

[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Ok,
ihr habt gewonnen,
wollte aber die anfänger nicht gleich verwirren
FF
ihr habt gewonnen,

wollte aber die anfänger nicht gleich verwirren
FF

Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
- Tafkadasom2k5
- Beiträge: 1578
- Registriert: 13.08.2005 14:31
- Kontaktdaten:
Ich poste mal mein kleines Tool was ich mal zum testen angewendet habe..ist nicht immer das genauste...aber seid nicht so hart mit einem Anfänger.. 
Ausserdem fühl ich mich plötzlich minderwertig...bei euren soo schönen Versionen...
Naja, bei mir bekommt ihr ein komplettes Tool
Gr33tz
Tafkadasom2k5

Ausserdem fühl ich mich plötzlich minderwertig...bei euren soo schönen Versionen...
Naja, bei mir bekommt ihr ein komplettes Tool

Gr33tz
Tafkadasom2k5
Code: Alles auswählen
; PureBasic Visual Designer v3.90 build 1360
;- Window Constants
;
Enumeration
#Window_0
EndEnumeration
;- Gadget Constants
;
Enumeration
#Check_Code
#Check_Dezimal
#Combo_Change
#String_Code
#String_Dezimal
#Button_Proceed
#ButtonInfo
EndEnumeration
;- Image Plugins
;- Image Globals
Global Image0
;- Catch Images
Image0 = CatchImage(0, ?Image0)
;- Images
DataSection
Image0:
IncludeBinary "Info.bmp"
EndDataSection
Procedure Open_Window_0()
If OpenWindow(#Window_0, 433, 129, 328, 136, #PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_WindowCentered , "Hex- / Binär Umrechner V1.0 ")
If CreateGadgetList(WindowID())
OptionGadget(#Check_Code, 30, 20, 60, 20, "Code")
GadgetToolTip(#Check_Code, "Klicken Sie hier, wenn sie eine Hexadezimal- /Binärzahl in eine Dezimalzahl umrechen möchten")
OptionGadget(#Check_Dezimal, 30, 60, 60, 20, "Dezimal")
GadgetToolTip(#Check_Dezimal, "Aktivieren Sie diese Box wenn sie eine Dezimalzahl in einen Hexadezimal- Binärcode umrechnen möchten")
ComboBoxGadget(#Combo_Change, 110, 100, 110, 120)
GadgetToolTip(#Combo_Change, "Wählen Sie hier aus in welchem System sie umrechnen wollen (Hexadezimal- /Binärsystem)")
StringGadget(#String_Code, 110, 20, 110, 20, "")
GadgetToolTip(#String_Code, "Hier den Hexadezimal- oder Binärcode eingeben")
StringGadget(#String_Dezimal, 110, 60, 110, 20, "", #PB_String_Numeric)
GadgetToolTip(#String_Dezimal, "Hier die Dezimalzahl eingeben")
ButtonGadget(#Button_Proceed, 240, 50, 70, 30, "Proceed")
ButtonImageGadget(#ButtonInfo, 300, 110, 20, 20, Image0)
GadgetToolTip(#ButtonInfo, "Info")
EndIf
EndIf
EndProcedure
Procedure BinaryToDezimal(AnfangsCode.s)
Laenge = Len(AnfangsCode)
For i=1 To Len(AnfangsCode)
Code.s + Mid(AnfangsCode,Laenge,1)
If Laenge <> 0
Laenge = Laenge - 1
EndIf
Next
For i=1 To Len(Code)
If Mid(Code,i,1) = "1"
Ergebnis = Ergebnis + Pow(2,i-1)
EndIf
Next
ProcedureReturn Ergebnis
EndProcedure
Procedure HexToDezimal(AnfangsCode.s)
Laenge = Len(AnfangsCode)
For i=1 To Len(AnfangsCode)
Code.s + Mid(AnfangsCode,Laenge,1)
If Laenge <> 0
Laenge = Laenge - 1
EndIf
Next
For i=1 To Len(Code)
Umrechnen.s = Mid(Code,i,1)
Select Umrechnen
Case "A"
Umrechnen = "10"
Case "B"
Umrechnen = "11"
Case "C"
Umrechnen = "12"
Case "D"
Umrechnen = "13"
Case "E"
Umrechnen = "14"
Case "F"
Umrechnen = "15"
Case "a"
Umrechnen = "10"
Case "b"
Umrechnen = "11"
Case "c"
Umrechnen = "12"
Case "d"
Umrechnen = "13"
Case "e"
Umrechnen = "14"
Case "f"
Umrechnen = "15"
EndSelect
Potenz = Pow(16,i-1)
Ergebnis = Ergebnis + (Potenz * Val(Umrechnen))
Next
ProcedureReturn Ergebnis
EndProcedure
Open_Window_0()
AddGadgetItem(#Combo_Change,-1,"Binärzahlen")
AddGadgetItem(#Combo_Change,-1,"Hex-Zahlen")
SetGadgetState(#Check_Code,1)
SetGadgetState(#Combo_Change,0)
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_CloseWindow : Quit = 1 : EndIf
If EventID = #PB_Event_Gadget
Select EventGadgetID()
Case #ButtonInfo
MessageRequester("Info", "Hexadezimal- / Binärumrechner v1.0 - (C) by Marc Giesmann" + Chr(10) + "" + Chr(10) + "Der Autor übernimmt hiermit keine Haftung für Schäden," + Chr(10) + "die dieses Programm unter Umständen verursachen kann." + Chr(10) + "" + Chr(10) + "Dieses Programm ist Freeware und darf ohne Zusage des Autors" + Chr(10) + "veröffentlicht werden." + Chr(10) + "" + Chr(10) + "Änderungen an dem Programm sind auschliesslich dem Autor" + Chr(10) + "dieses Programmes vorbehalten." + Chr(10) + "" + Chr(10) + "Bei Bugs, Kritik und Anregungen wenden Sie sich bitte an:" + Chr(10) + "" + Chr(10) + "marcarneg@surfeu.de" + Chr(10) + "" + Chr(10) + "Bevor Sie mir einen Bug melden,achten sie ob der Fehler kein Tipp- oder Schreibfehler Ihrerseits war!", #MB_OK|#MB_ICONINFORMATION)
Case #Button_Proceed
If GetGadgetState(#Check_Code) = 1 And GetGadgetState(#Combo_Change) = 0
SetGadgetText(#String_Dezimal,Str(BinaryToDezimal(GetGadgetText(#String_Code))))
EndIf
If GetGadgetState(#Check_Code) = 1 And GetGadgetState(#Combo_Change) = 1
SetGadgetText(#String_Dezimal,Str(HexToDezimal(GetGadgetText(#String_Code))))
EndIf
If GetGadgetState(#Check_Dezimal) = 1 And GetGadgetState(#Combo_Change) = 0
Dezimalzahl = Val(GetGadgetText(#String_Dezimal))
SetGadgetText(#String_Code,Bin(Dezimalzahl))
EndIf
If GetGadgetState(#Check_Dezimal) = 1 And GetGadgetState(#Combo_Change) = 1
Dezimalzahl = Val(GetGadgetText(#String_Dezimal))
SetGadgetText(#String_Code,Hex(Dezimalzahl))
EndIf
EndSelect
EndIf
Until Quit = 1
End
OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!