Доброго всем дня!
Возникла необходимость в преобразовании десятичных чисел от счетчика в 8-ми битовый бинарный код. Это нужно сделать на языке Техно ST ( язык для систем автоматизации). Он очень похож на AutoIt. Поэтому код AutoIt можно легко перевести в Техно ST, главное поменьше использовать сложных функций. А лучше вообще без них.
Так вот, я знаю такой способ:
Но может, кто нибудь знает более изящный метод преобразования! Подскажите пожалуйста.
Условие: Вход и весь выход должны быть в виде отдельных переменных.
И желательно без функций.Если используются функции то надо раскрыть в коде весь код функции.
Возникла необходимость в преобразовании десятичных чисел от счетчика в 8-ми битовый бинарный код. Это нужно сделать на языке Техно ST ( язык для систем автоматизации). Он очень похож на AutoIt. Поэтому код AutoIt можно легко перевести в Техно ST, главное поменьше использовать сложных функций. А лучше вообще без них.
Так вот, я знаю такой способ:
Код:
Dim $Bit_1, $Bit_2, $Bit_3, $Bit_4, $Bit_5, $Bit_6, $Bit_7, $Bit_8
$DEC_Chislo = 255
;определяем состояние Bit_8
If $DEC_Chislo = 128 Then
$Bit_8 = 1
Else
If $DEC_Chislo > 128 Then
$Bit_8 = 1
$DEC_Chislo = $DEC_Chislo - 128
Else
$Bit_8 = 0
EndIf
;определяем состояние Bit_7
If $DEC_Chislo = 64 Then
$Bit_7 = 1
Else
If $DEC_Chislo > 64 Then
$Bit_7 = 1
$DEC_Chislo = $DEC_Chislo - 64
Else
$Bit_7 = 0
EndIf
;определяем состояние Bit_6
If $DEC_Chislo = 32 Then
$Bit_6 = 1
Else
If $DEC_Chislo > 32 Then
$Bit_6 = 1
$DEC_Chislo = $DEC_Chislo - 32
Else
$Bit_6 = 0
EndIf
;определяем состояние Bit_5
If $DEC_Chislo = 16 Then
$Bit_5 = 1
Else
If $DEC_Chislo > 16 Then
$Bit_5 = 1
$DEC_Chislo = $DEC_Chislo - 16
Else
$Bit_5 = 0
EndIf
;определяем состояние Bit_4
If $DEC_Chislo = 8 Then
$Bit_4 = 1
Else
If $DEC_Chislo > 8 Then
$Bit_4 = 1
$DEC_Chislo = $DEC_Chislo - 8
Else
$Bit_4 = 0
EndIf
;определяем состояние Bit_3
If $DEC_Chislo = 4 Then
$Bit_3 = 1
Else
If $DEC_Chislo > 4 Then
$Bit_3 = 1
$DEC_Chislo = $DEC_Chislo - 4
Else
$Bit_3 = 0
EndIf
;определяем состояние Bit_2
If $DEC_Chislo = 2 Then
$Bit_2 = 1
Else
If $DEC_Chislo > 2 Then
$Bit_2 = 1
$DEC_Chislo = $DEC_Chislo - 2
Else
$Bit_2 = 0
EndIf
;определяем состояние Bit_1
If $DEC_Chislo = 1 Then
$Bit_1 = 1
Else
If $DEC_Chislo > 1 Then
$Bit_1 = 1
$DEC_Chislo = $DEC_Chislo - 1
Else
$Bit_1 = 0
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
MsgBox(64, 'Результат', "BIT8 = "&$Bit_8 & @CRLF & "BIT7 = "&$Bit_7 & @CRLF & "BIT6 = "&$Bit_6 & @CRLF & "BIT5 = "&$Bit_5 & @CRLF & "BIT4 = "&$Bit_4 & @CRLF & "BIT3 = "&$Bit_3 & @CRLF & "BIT2 = "&$Bit_2 & @CRLF & "BIT1 = "&$Bit_1)
Но может, кто нибудь знает более изящный метод преобразования! Подскажите пожалуйста.
Условие: Вход и весь выход должны быть в виде отдельных переменных.
И желательно без функций.Если используются функции то надо раскрыть в коде весь код функции.