Sub DecToBaseN
' Convert decimal number to notation system of base n
' param dec - decimal number
' param n - base n
' return num - number in notation system of base n
Stack.PushValue("local", dec)
If dec = 0 Then
num = 0
Else
num = ""
While 0 < dec
num = Text.Append(Text.GetSubText("0123456789ABCDEF", Math.Remainder(dec, n) + 1, 1), num)
dec = Math.Floor(dec / n)
EndWhile
EndIf
dec = Stack.PopValue("local")
EndSub
Sub ShowBinary
' param dec - decimal number
n = 2
DecToBaseN()
len = Text.GetLength(num) ' binary
If len < 8 Then
num = Text.Append(Text.GetSubTextToEnd("0000000", len), num)
len = 8
EndIf
For i = 1 To len
If Text.GetSubText(num, i, 1) = "1" Then
Shapes.SetOpacity(bit[len - i], 100)
Else
Shapes.SetOpacity(bit[len - i], 20)
EndIf
EndFor
EndSub
Sub ShowDec
' param dec - decimal number
Shapes.SetText(dtext, dec)
EndSub
Sub ShowHex
' param dec - decimal number
n = 16
DecToBaseN()
If Text.GetLength(num) = 1 Then
num = Text.Append(0, num)
EndIf
Shapes.SetText(hex, num)
EndSub