Don N Posted June 8, 2006 Share Posted June 8, 2006 Figured there were already Hex() and Dec() and i use binary a lot in school and work so here is a simple conversion utility and demo script. The actual conversion script Bin.au3 Demo script Bin_example.au3 _____________________________________________________"some people live for the rules, I live for exceptions"Wallpaper Changer - Easily Change Your Windows Wallpaper Link to comment Share on other sites More sharing options...
RazerM Posted June 8, 2006 Share Posted June 8, 2006 I don't use binary but it works. You should make a function that converts it back My Programs:AInstall - Create a standalone installer for your programUnit Converter - Converts Length, Area, Volume, Weight, Temperature and Pressure to different unitsBinary Clock - Hours, minutes and seconds have 10 columns each to display timeAutoIt Editor - Code Editor with Syntax Highlighting.Laserix Editor & Player - Create, Edit and Play Laserix LevelsLyric Syncer - Create and use Synchronised Lyrics.Connect 4 - 2 Player Connect 4 Game (Local or Online!, Formatted Chat!!)MD5, SHA-1, SHA-256, Tiger and Whirlpool Hash Finder - Dictionary and Brute Force FindCool Text Client - Create Rendered ImageMy UDF's:GUI Enhance - Enhance your GUIs visually.IDEA File Encryption - Encrypt and decrypt files easily! File Rename - Rename files easilyRC4 Text Encryption - Encrypt text using the RC4 AlgorithmPrime Number - Check if a number is primeString Remove - remove lots of strings at onceProgress Bar - made easySound UDF - Play, Pause, Resume, Seek and Stop. Link to comment Share on other sites More sharing options...
dv8 Posted June 9, 2006 Share Posted June 9, 2006 Nice, but you should add some checks... Try converting 999999999999999 (15 - nines) Free Remote Desktop Software For Windows Link to comment Share on other sites More sharing options...
Don N Posted June 9, 2006 Author Share Posted June 9, 2006 Ok yea it will only work on numbers in the integer range...(-2147483648 to 2147483647) I guess i will check for that tho....thanks _____________________________________________________"some people live for the rules, I live for exceptions"Wallpaper Changer - Easily Change Your Windows Wallpaper Link to comment Share on other sites More sharing options...
RazerM Posted June 9, 2006 Share Posted June 9, 2006 (edited) This checks to see if it is in that range you specified... expandcollapse popupFunc Bin( $dec ) ;check to see if the number is 0, if it is return 0 If $dec = 0 Then Return "0" ;check to see if number is valid If _IsOutsideRange(-2147483648, 2147483647, $dec) = 0 Then Return 0 ;used to determine whether the number is negative or not we convert the absolute ;value of the dec num to binary then reapply neg sign at the end $neg = Abs( $dec ) / $dec $dec *= $neg ;convert the integegral part of the number to binary $integral = int_bin( Int( $dec ) ) ;convert the decimal part of the number to binary $decimal = dec_bin( $dec - Int( $dec ) ) ;assemble the binary number result from the integral and decimal pieces Return StringTrimRight( $neg * 1, 1 ) & $integral & $decimal EndFunc ;==>Bin ;this function converts the decimal part of the given number to binary Func dec_bin( $dec_part ) Local $binary = "" If $dec_part = 0 Then Return "" $binary &= "." While $dec_part <> 0 $dec_part *= 2 If $dec_part >= 1 Then $binary = $binary & "1" $dec_part -= 1 Else $binary = $binary & "0" EndIf WEnd Return $binary EndFunc ;==>dec_bin ;this function converts the integer part of the given number to binary Func int_bin( $int_part ) Local $binary = "" If $int_part = 0 Then Return "0" While $int_part <> 0 If Mod( $int_part, 2 ) = 0 Then $binary = $binary & "0" Else $binary = $binary & "1" $int_part -= 1 EndIf $int_part = Int( $int_part / 2 ) Wend Return _StringReverse( $binary ) EndFunc ;==>int_bin Func _IsOutsideRange($lowest, $highest, $num) If (Not IsNumber($lowest)) Or (Not IsNumber($highest)) Or (Not IsNumber($num)) Then SetError(1) Return 0 EndIf If $num < $lowest Then Return 0 If $num > $highest Then Return 0 Return 1 EndFunc Edited June 9, 2006 by RazerM My Programs:AInstall - Create a standalone installer for your programUnit Converter - Converts Length, Area, Volume, Weight, Temperature and Pressure to different unitsBinary Clock - Hours, minutes and seconds have 10 columns each to display timeAutoIt Editor - Code Editor with Syntax Highlighting.Laserix Editor & Player - Create, Edit and Play Laserix LevelsLyric Syncer - Create and use Synchronised Lyrics.Connect 4 - 2 Player Connect 4 Game (Local or Online!, Formatted Chat!!)MD5, SHA-1, SHA-256, Tiger and Whirlpool Hash Finder - Dictionary and Brute Force FindCool Text Client - Create Rendered ImageMy UDF's:GUI Enhance - Enhance your GUIs visually.IDEA File Encryption - Encrypt and decrypt files easily! File Rename - Rename files easilyRC4 Text Encryption - Encrypt text using the RC4 AlgorithmPrime Number - Check if a number is primeString Remove - remove lots of strings at onceProgress Bar - made easySound UDF - Play, Pause, Resume, Seek and Stop. Link to comment Share on other sites More sharing options...
RazerM Posted June 9, 2006 Share Posted June 9, 2006 I have made a decimal to binary function and renamed your functions with _ at the start. example: #include <array.au3> #include <string.au3> $original = InputBox("Decimal > Binary", "Enter a decimal Number.") $bin = _Bin($original) $dec = _BinToDec($bin) MsgBox(0,"Binary","Original = " & $original & @CRLF & "Decimal > Binary = " & $bin & @CRLF & "Binary > Decimal = " & $dec) expandcollapse popupFunc _Bin( $dec ) $dec = Number($dec) ;check to see if the number is 0, if it is return 0 If $dec = 0 Then Return 0 ;check to see if number is valid If _IsOutsideRange(-2147483648, 2147483647, $dec) = 0 Then Return 0 ;used to determine whether the number is negative or not we convert the absolute ;value of the dec num to binary then reapply neg sign at the end $neg = Abs( $dec ) / $dec $dec *= $neg ;convert the integegral part of the number to binary $integral = _int_bin( Int( $dec ) ) ;convert the decimal part of the number to binary $decimal = _dec_bin( $dec - Int( $dec ) ) ;assemble the binary number result from the integral and decimal pieces Return StringTrimRight( $neg * 1, 1 ) & $integral & $decimal EndFunc ;==>Bin ;this function converts the decimal part of the given number to binary Func _dec_bin( $dec_part ) Local $binary = "" If $dec_part = 0 Then Return "" $binary &= "." While $dec_part <> 0 $dec_part *= 2 If $dec_part >= 1 Then $binary = $binary & "1" $dec_part -= 1 Else $binary = $binary & "0" EndIf WEnd Return $binary EndFunc ;==>dec_bin ;this function converts the integer part of the given number to binary Func _int_bin( $int_part ) Local $binary = "" If $int_part = 0 Then Return "0" While $int_part <> 0 If Mod( $int_part, 2 ) = 0 Then $binary = $binary & "0" Else $binary = $binary & "1" $int_part -= 1 EndIf $int_part = Int( $int_part / 2 ) Wend Return _StringReverse( $binary ) EndFunc ;==>int_bin Func _BinToDec($bin) ;reverse for easier use $bin = _StringReverse($bin) ;split into 1, 2, 4, 8, 16, 32, 64, 128 etc 'columns' $split = StringSplit($bin, "") ;set result var to zero $dec = 0 ;create column array starting with 0 and 1 (0 isn't needed) Dim $decnum[2] = [0, 1] ;check for anything that isnt binary For $i = 1 To $split[0] If ($split[$i] <> 0) And ($split[$i] <> 1) Then SetError(1) Return 0 EndIf Next ;add column header to array for only those needed For $i = 2 To StringLen($bin) _ArrayAdd($decnum, $decnum[$i-1] * 2) Next #cs For column 1 it multiplies 1 by 0 or 1 For column 2 it multiplies 2 by 0 or 1 For column 3 it multiplies 4 by 0 or 1 For column 4 it multiplies 8 by 0 or 1 For column 5 it multiplies 16 by 0 or 1 For column n.... #ce For $i = 1 To $split[0] $dec += $split[$i] * $decnum[$i] Next Return $dec EndFunc Func _IsOutsideRange($lowest, $highest, $num) If (Not IsNumber($lowest)) Or (Not IsNumber($highest)) Or (Not IsNumber($num)) Then SetError(1) Return 0 EndIf If $num < $lowest Then Return 0 If $num > $highest Then Return 0 Return 1 EndFunc ;==>_IsOutsideRange My Programs:AInstall - Create a standalone installer for your programUnit Converter - Converts Length, Area, Volume, Weight, Temperature and Pressure to different unitsBinary Clock - Hours, minutes and seconds have 10 columns each to display timeAutoIt Editor - Code Editor with Syntax Highlighting.Laserix Editor & Player - Create, Edit and Play Laserix LevelsLyric Syncer - Create and use Synchronised Lyrics.Connect 4 - 2 Player Connect 4 Game (Local or Online!, Formatted Chat!!)MD5, SHA-1, SHA-256, Tiger and Whirlpool Hash Finder - Dictionary and Brute Force FindCool Text Client - Create Rendered ImageMy UDF's:GUI Enhance - Enhance your GUIs visually.IDEA File Encryption - Encrypt and decrypt files easily! File Rename - Rename files easilyRC4 Text Encryption - Encrypt text using the RC4 AlgorithmPrime Number - Check if a number is primeString Remove - remove lots of strings at onceProgress Bar - made easySound UDF - Play, Pause, Resume, Seek and Stop. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now