Hile bei Binären Zahlen

  • Hi!

    Also peethebee hat mir ja schon mal toll geholfen bei dem Script dass mir ne zahl in 0 und 1 (binär) umwandelt.

    Klappt!

    Doch jetzt brauche ich es auch imgekehrt also ich gebe 010010101 ein und das script sagt" 2948" oder so :(

    Hier das scriipt das 29483 in 010101011 umwandelt:

    (ps die code.ini ist egal, da stehen nur paar daten drin, nix fürs script^^)

    [autoit]


    ; ----------------------------------------------------------------------------

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    ; Tool zum berechnen des Binären Zahlencodes
    ; Geschrieben am 1.10.2006

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    ; #################################################################################################################################

    [/autoit][autoit][/autoit][autoit]

    HotKeySet("{F1}", "_zahl_fragen")
    HotKeySet("{F2}", "_credits")
    HotKeySet("{F3}", "_reset")

    [/autoit][autoit][/autoit][autoit]

    While 1
    sleep(100)
    WEnd

    [/autoit][autoit][/autoit][autoit]

    Func _zahl_fragen()

    [/autoit][autoit][/autoit][autoit]

    $ininame = IniRead("code.ini", "Name" , "name", "")

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    if $ininame = "name" Then

    [/autoit][autoit][/autoit][autoit]

    $name = InputBox("Dein name", "Dein name")

    [/autoit][autoit][/autoit][autoit]

    IniWrite("code.ini", "Name", "name", $name)

    [/autoit][autoit][/autoit][autoit]

    MsgBox(64, "Danke", "Danke " & $name & " , die Einstellungen wurden Erfolgreich geändert!")

    [/autoit][autoit][/autoit][autoit]

    EndIf

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]

    Global $ergebnis = 0

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]

    $ininame2 = IniRead("code.ini", "Name" , "name", "")

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]

    $zahl = InputBox("Hallo " & $ininame2 , "Deine Zahl bitte")

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]

    For $i = 10000 To 0 Step - 1
    If $zahl >= 2 ^ $i Then
    $zahl = $zahl - 2^($i)
    $ergebnis = $ergebnis & "1"
    Else
    $ergebnis = $ergebnis & "0"
    EndIf
    Next
    MsgBox(0, "", int($ergebnis))

    [/autoit][autoit][/autoit][autoit]

    EndFunc

    [/autoit][autoit][/autoit][autoit]

    Func _credits()
    MsgBox(64, '', "Autor: Huggy." & @CRLF & "F1: Zahl ausrechnen" & @CRLF & "F2: Hilfe" & @CRLF & "F3: Resettet den Namen")
    EndFunc ;==>_credits,

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    Func _reset()

    [/autoit][autoit][/autoit][autoit]

    IniWrite("code.ini", "Name", "name", "name")

    [/autoit][autoit][/autoit][autoit]

    EndFunc

    [/autoit]

    Ist (relativ) dringend = :klatschen: :klatschen:

    • Offizieller Beitrag
    [autoit]

    ; ----------------------------------------------------------------------------

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    ; Tool zum berechnen des Binären Zahlencodes
    ; Geschrieben am 1.10.2006

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    ; #################################################################################################################################

    [/autoit][autoit][/autoit][autoit]

    HotKeySet("{F1}", "_int2bin")
    HotKeySet("{F2}", "_bin2int")
    HotKeySet("{F3}", "_credits")
    HotKeySet("{F4}", "_reset")

    [/autoit][autoit][/autoit][autoit]

    While 1
    Sleep(100)
    WEnd

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    Func _int2bin()
    $ininame = IniRead("code.ini", "Name", "name", "")

    [/autoit][autoit][/autoit][autoit]

    If $ininame <> "" Then ; hier =
    $name = InputBox("Dein name", "Dein name")
    IniWrite("code.ini", "Name", "name", $name)
    MsgBox(64, "Danke", "Danke " & $name & " , die Einstellungen wurden Erfolgreich geändert!")
    EndIf

    [/autoit][autoit][/autoit][autoit]

    Global $ergebnis = 0

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    $ininame2 = IniRead("code.ini", "Name", "name", "")

    [/autoit][autoit][/autoit][autoit]

    $zahl = InputBox("Hallo " & $ininame2, "Deine Zahl bitte")

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]

    For $i = 10000 To 0 Step - 1
    If $zahl >= 2 ^ $i Then
    $zahl = $zahl - 2^ ($i)
    $ergebnis = $ergebnis & "1"
    Else
    $ergebnis = $ergebnis & "0"
    EndIf
    Next
    MsgBox(0, "", Int($ergebnis))
    EndFunc ;==>_int2bin

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    Func _bin2int()
    $ininame = IniRead("code.ini", "Name", "name", "")

    [/autoit][autoit][/autoit][autoit]

    If $ininame <> "" Then ; hier =
    $name = InputBox("Dein name", "Dein name")
    IniWrite("code.ini", "Name", "name", $name)
    MsgBox(64, "Danke", "Danke " & $name & " , die Einstellungen wurden Erfolgreich geändert!")
    EndIf

    [/autoit][autoit][/autoit][autoit]

    Global $ergebnis = 0

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    $ininame2 = IniRead("code.ini", "Name", "name", "")

    [/autoit][autoit][/autoit][autoit]

    $zahl = InputBox("Hallo " & $ininame2, "Deine Zahl bitte")

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    For $i = 0 to StringLen($zahl)
    $ergebnis = $ergebnis + StringMid($zahl, $i, 1) * 2^(StringLen($zahl) - $i)
    Next
    MsgBox(0, "", Int($ergebnis))
    EndFunc ;==>_int2bin

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    Func _credits()
    MsgBox(64, '', "Autor: Huggy mit freundlicher Unterstützung von peethebee" & @CRLF & "F1: Zahl ausrechnen" & @CRLF & "F2: Hilfe" & @CRLF & "F3: Resettet den Namen")
    EndFunc ;==>_credits

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    Func _reset ()
    IniWrite("code.ini", "Name", "name", "name")
    EndFunc ;==>_reset

    [/autoit]

    peethebee

  • Warum wusst ic bloß dass du die erste Antwort gibst :D
    ps das mit den Credits dass da Huggy stand ist nicht so gemeint/ hab in der ini stehen Autor: peethebee =)


    Huggy steht da weil ich mit den inis was probiert habe ob man das deaktivieren kann, war n doofer gedanke :D

    Danke :klatschen:

    Einmal editiert, zuletzt von huggy (2. Oktober 2006 um 12:51)

    • Offizieller Beitrag

    Hallo!

    Ich habe die Schleife in _int2bin mal etwas optimiert, ist jetzt um einiges schneller!

    Spoiler anzeigen
    [autoit]

    ; ----------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ; Tool zum berechnen des Binären Zahlencodes
    ; Geschrieben am 1.10.2006

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ; #################################################################################################################################

    [/autoit] [autoit][/autoit] [autoit]

    HotKeySet("{F1}", "_int2bin")
    HotKeySet("{F2}", "_bin2int")
    HotKeySet("{F3}", "_credits")
    HotKeySet("{F4}", "_reset")

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Sleep(100)
    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _int2bin()
    $ininame = IniRead("code.ini", "Name", "name", "")

    [/autoit] [autoit][/autoit] [autoit]

    If $ininame <> "" Then ; hier =
    $name = InputBox("Dein name", "Dein name")
    IniWrite("code.ini", "Name", "name", $name)
    MsgBox(64, "Danke", "Danke " & $name & " , die Einstellungen wurden Erfolgreich geändert!")
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Global $ergebnis = 0

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $ininame2 = IniRead("code.ini", "Name", "name", "")

    [/autoit] [autoit][/autoit] [autoit]

    $zahl = InputBox("Hallo " & $ininame2, "Deine Zahl bitte")

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Do
    $ModValue = Mod($zahl,2)
    $zahl = ($zahl - $ModValue) / 2
    $ergebnis = $ModValue & $ergebnis
    Until $zahl = 0

    ;~ For $i = 10000 To 0 Step - 1
    ;~ If $zahl >= 2 ^ $i Then
    ;~ $zahl = $zahl - 2^ ($i)
    ;~ $ergebnis = $ergebnis & "1"
    ;~ Else
    ;~ $ergebnis = $ergebnis & "0"
    ;~ EndIf
    ;~ Next
    MsgBox(0, "", Int($ergebnis))
    EndFunc ;==>_int2bin

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _bin2int()
    $ininame = IniRead("code.ini", "Name", "name", "")

    [/autoit] [autoit][/autoit] [autoit]

    If $ininame <> "" Then ; hier =
    $name = InputBox("Dein name", "Dein name")
    IniWrite("code.ini", "Name", "name", $name)
    MsgBox(64, "Danke", "Danke " & $name & " , die Einstellungen wurden Erfolgreich geändert!")
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Global $ergebnis = 0

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $ininame2 = IniRead("code.ini", "Name", "name", "")

    [/autoit] [autoit][/autoit] [autoit]

    $zahl = InputBox("Hallo " & $ininame2, "Deine Zahl bitte")

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    For $i = 0 to StringLen($zahl)
    $ergebnis = $ergebnis + StringMid($zahl, $i, 1) * 2^(StringLen($zahl) - $i)
    Next
    MsgBox(0, "", Int($ergebnis))
    EndFunc ;==>_int2bin

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _credits()
    MsgBox(64, '', "Autor: Huggy mit freundlicher Unterstützung von peethebee" & @CRLF & "F1: Zahl ausrechnen" & @CRLF & "F2: Hilfe" & @CRLF & "F3: Resettet den Namen")
    EndFunc ;==>_credits

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _reset ()
    IniWrite("code.ini", "Name", "name", "name")
    EndFunc ;==>_reset

    [/autoit]
  • Hi,

    also ich nehme dafür einfach den Windows Taschenrechner her. der macht das in der Wissenschaftlichen Anzeige ;)

    Gruß Rabbit