hi leute,
gibt es eine art funktion mit der man text und zahlen in Binärcode umwandeln kann?
mfg team2way
hi leute,
gibt es eine art funktion mit der man text und zahlen in Binärcode umwandeln kann?
mfg team2way
Jo, zumindest für Zahlen...
von Progandy:
[autoit];===============================================================================
;
; Function Name: _TranslateSystem
; Description:: Wandelt eine Zahl zwischen verschiedenen Zahlensystemen um.
; Parameter(s): $zahl - Die Zahl zum Umwandeln
; $OldSystem - [Optional] Das alte System (Default: 10)
; $NewSystem - [Optional] Das neue System (Default: 2)
; Requirement(s):
; Return Value(s): Success: Number in new format and @extended set to SystemBase
; Error: -1.#NAN or -1.#IND
; @error set to:
; 1 - Zahl nicht richtig formatiert
; 2 - neues System nicht im darstellbaren Bereich
; 3 - altes System nicht im darstellbaren Bereich
; 4 - Zahl enthält Zeichen, die nicht im System vorkommen
; Author(s): Prog@ndy; sd (VB-Code)
; VB source used from http://www.vbarchiv.net/tipps/details.php?id=1590
;
;===============================================================================
;
Func _TranslateSystem($zahl, $OldSystem=10, $NewSystem = 2)
Local $out ;' Ausgabevariable
Local $temp ;' Temporäre Variable
$OldSystem = Int($OldSystem)
$NewSystem = Int($NewSystem)
Select
Case Not StringRegExp($zahl,"\A[0-9a-zA-Z]+\Z")
Return SetError(2,0,"-1.#NAN")
Case $NewSystem < 2 Or $NewSystem > 62
Return SetError(2,0,"-1.#IND")
Case $OldSystem < 2 Or $OldSystem > 62
Return SetError(3,0,"-1.#IND")
EndSelect
;' Zeichen der Zahlensysteme ( bis Hexadezimalsystem )
Local $chrsys = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
If $OldSystem <> 10 Then
Local $CaseSense = ($OldSystem > 36)
Local $ziffern = StringSplit($zahl,""), $nummer
$zahl = 0
For $i = 1 To $ziffern[0]
$nummer = StringInStr($chrsys,$ziffern[$i],$CaseSense,1)
If $nummer > 0 Then $zahl += ($nummer-1)*($OldSystem^($ziffern[0]-$i))
If $nummer > $OldSystem Then Return SetError(4,0,"1.#NAN")
Next
EndIf
;' Solange bis Zahl = 0
While $zahl <> 0
;' Stelle der Zahl ermitteln
$temp = Mod($zahl, $NewSystem )
;' Zahl anhängen
$out = StringMid($chrsys, $temp + 1, 1) & $out
;' Integerdivision
$zahl = Int($zahl / $NewSystem)
Wend
SetExtended($NewSystem)
Return $out
EndFunc
lgE
und text wär natürlich auch nice^^
Reicht dir evtl. StringToBinary ?
ne das sin ja keine "richtigen" binärzahlen oder? also 0 und 1
Was willst du denn machen?
Du kannst z.b. jedes Byte (=2 Stellen Hex) mit oben genannter Funktion in Binärcode umwandeln
z.b.: 0xFF=11111111
Also zuerst StringToBinary und dann Schritt für Schritt in tatsächlichen BinärCode...
lgE
Du könntest dir auch die Ascii-Zahl für jeden einzelnen Buchstaben wiedergeben lassen und die mit der Funktion oben umrechnen.
$Num=Asc($Buchstabe)
ok...aber es gibt keine richtige funktion oder so also man müsste dann alles neu schreiben...
Also so ungefähr?
Hab zwar keine Ahnung wozu man das braucht, aber bitte.
MsgBox(0,"", __String2Binary('bb'))
[/autoit] [autoit][/autoit] [autoit]Func __String2Binary($sString)
;funkey
Local $sRet, $aString = StringRegExp($sString, '.?', 3)
For $i = 0 To UBound($aString) -2
$sRet &= _TranslateSystem(Asc($aString[$i]), 16)
Next
Return $sRet
EndFunc
;===============================================================================
;
; Function Name: _TranslateSystem
; Description:: Wandelt eine Zahl zwischen verschiedenen Zahlensystemen um.
; Parameter(s): $zahl - Die Zahl zum Umwandeln
; $OldSystem - [Optional] Das alte System (Default: 10)
; $NewSystem - [Optional] Das neue System (Default: 2)
; Requirement(s):
; Return Value(s): Success: Number in new format and @extended set to SystemBase
; Error: -1.#NAN or -1.#IND
; @error set to:
; 1 - Zahl nicht richtig formatiert
; 2 - neues System nicht im darstellbaren Bereich
; 3 - altes System nicht im darstellbaren Bereich
; 4 - Zahl enthält Zeichen, die nicht im System vorkommen
; Author(s): Prog@ndy; sd (VB-Code)
; VB source used from http://www.vbarchiv.net/tipps/details.php?id=1590
;
;===============================================================================
;
Func _TranslateSystem($zahl, $OldSystem=10, $NewSystem = 2)
Local $out ;' Ausgabevariable
Local $temp ;' Temporäre Variable
$OldSystem = Int($OldSystem)
$NewSystem = Int($NewSystem)
Select
Case Not StringRegExp($zahl,"\A[0-9a-zA-Z]+\Z")
Return SetError(2,0,"-1.#NAN")
Case $NewSystem < 2 Or $NewSystem > 62
Return SetError(2,0,"-1.#IND")
Case $OldSystem < 2 Or $OldSystem > 62
Return SetError(3,0,"-1.#IND")
EndSelect
;' Zeichen der Zahlensysteme ( bis Hexadezimalsystem )
Local $chrsys = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
If $OldSystem <> 10 Then
Local $CaseSense = ($OldSystem > 36)
Local $ziffern = StringSplit($zahl,""), $nummer
$zahl = 0
For $i = 1 To $ziffern[0]
$nummer = StringInStr($chrsys,$ziffern[$i],$CaseSense,1)
If $nummer > 0 Then $zahl += ($nummer-1)*($OldSystem^($ziffern[0]-$i))
If $nummer > $OldSystem Then Return SetError(4,0,"1.#NAN")
Next
EndIf
;' Solange bis Zahl = 0
While $zahl <> 0
;' Stelle der Zahl ermitteln
$temp = Mod($zahl, $NewSystem )
;' Zahl anhängen
$out = StringMid($chrsys, $temp + 1, 1) & $out
;' Integerdivision
$zahl = Int($zahl / $NewSystem)
Wend
SetExtended($NewSystem)
Return $out
EndFunc
thx
die zahlen werden hier allerdings nicht mehr richtig übersetzt, warscheinlich weil er diese sting umwandlung macht...?
zB 2 = 1010000 ==> 1010000 ist aber normalerweise 16+64 = 80
also das gilt dann nur für text
Posts editieren bitte, nicht dreimal am Stück posten...
peethebee
Hatte noch eine Denkfehler drin, sorry.
[autoit]Func __String2Binary($sString)
;funkey
Local $sRet, $aString = StringRegExp($sString, '.?', 3)
For $i = 0 To UBound($aString) -2
$sRet &= StringFormat('%008s', _TranslateSystem(Asc($aString[$i])))
Next
Return $sRet
EndFunc
es kommt aber immer noch bei zahlen der gleiche fehler
Wieso? Was willst du jetzt umwandeln? Strings oder Zahlen?
Für Zahlen reicht doch die Funktion _TranslateSystem
Du hast noch immer nicht gesagt, was du vor hast. Wie sollen wir dir dann helfen.
ZitatDu hast noch immer nicht gesagt, was du vor hast. Wie sollen wir dir dann helfen.
lol ich sag doch die ganze zeit was ich vor hab...es geht um das umwandeln von text+zahlen in binärcode und andersrum
schaut euch mal das hier an:
http://www.ben-newman.de/com/bin.php
ol ich sag doch die ganze zeit was ich vor hab...es geht um das umwandeln von text+zahlen in binärcode und andersrum
Das ist in etwa dasselbe, als ob du sagst, ich will 'ne GUI erstellen
Gib bitte Bsp. an
- Ausgangsstatus (Text)
- gewünschter Zielstatus
Zitat von team2waylol ich sag doch die ganze zeit was ich vor hab...es geht um das umwandeln von text+zahlen in binärcode und andersrum
schaut euch mal das hier an:
http://www.ben-newman.de/com/bin.php
Genau das gleiche kommt doch bei meinem Skript heraus, also was geht da bitte nicht? Willst du auch noch das Leerzeichen zwischen den 8er-Blocks? Das kriegst du bestimmt selber hin!