Hallo,
Bin gerade dabei mir 2 kleine Programme zu schreiben, einmal für die Umrechnung von dual->dezimal und einmal von dezimal->dual.
Ersteres klappt prima nur dezimal-> dual läuft nicht. Möchte ich jetzt zum Beispiel die Zahl 255 in 8 Dualzahlen zerlegen (was ja eigendlich 11111111 also 8x1 ergeben müsste), kommt der Simulator aber auf 11111110!!!!! Woran kann das liegen??? Ich hoffe der Code ist einigermaßen verständlich

Code:
 Dim Dual1 As Bit
Dim Dual2 As Bit
Dim Dual3 As Bit
Dim Dual4 As Bit
Dim Dual5 As Bit
Dim Dual6 As Bit
Dim Dual7 As Bit
Dim Dual8 As Bit

Dim Dezi1 As Byte
Dim Dezi2 as byte
Dim Dezi3 as byte
Dim Dezi4 as byte
Dim Dezi5 as byte
Dim Dezi6 as byte
Dim Dezi7 as byte
Dim Dezi8 As Byte

Dim Dezidualtimer As Byte
Dezidualtimer = 0

Dezi1 = 255






Dezimal_dual:
Dezidualtimer = Dezidualtimer + 1
Dezi2 = Dezi1 / 2                                           '127
Dezi3 = Dezi2 + Dezi2                                       '254
Dezi4 = Dezi3 + 1                                           '255
Select Case Dezidualtimer
   Case 1 : Goto Dezimal_dual_1
   Case 2 : Goto Dezimal_dual_2
   Case 3 : Goto Dezimal_dual_3
   Case 4 : Goto Dezimal_dual_4
   Case 5 : Goto Dezimal_dual_5
   Case 6 : Goto Dezimal_dual_6
   Case 7 : Goto Dezimal_dual_7
   Case 8 : Goto Dezimal_dual_8
End Select
Dezimal_dual_1:
If Dezi4 = Dezi1 Then
   Dual8 = 1
   Else
      Dual8 = 0
   End If
   Goto Dezimal_dual_schleife
Dezimal_dual_2:
If Dezi4 = Dezi1 Then
   Dual7 = 1
   Else
      Dual7 = 0
   End If
   Goto Dezimal_dual_schleife
Dezimal_dual_3:
If Dezi4 = Dezi1 Then
   Dual6 = 1
   Else
      Dual6 = 0
   End If
   Goto Dezimal_dual_schleife
Dezimal_dual_4:
If Dezi4 = Dezi1 Then
   Dual5 = 1
   Else
      Dual5 = 0
   End If
   Goto Dezimal_dual_schleife
Dezimal_dual_5:
If Dezi4 = Dezi1 Then
   Dual4 = 1
   Else
      Dual4 = 0
   End If
   Goto Dezimal_dual_schleife
Dezimal_dual_6:
If Dezi4 = Dezi1 Then
   Dual3 = 1
   Else
      Dual3 = 0
   End If
   Goto Dezimal_dual_schleife
Dezimal_dual_7:
If Dezi4 = Dezi1 Then
   Dual2 = 1
   Else
      Dual3 = 0
   End If
   Goto Dezimal_dual_schleife
Dezimal_dual_8:
If Dezi4 = Dezi1 Then
   Dual1 = 1
   Else
      Dual1 = 0
   End If
   Goto Dezimal_dual_schleife

Dezimal_dual_schleife:
Dezi1 = Dezi2
If Dezidualtimer > 8 Then
   'Ende und Funktion
   Print Dual1 ; Dual2 ; Dual3 ; Dual4 ; Dual5 ; Dual6 ; Dual7 ; Dual8
   Wait 300
   End If
Goto Dezimal_dual
MfG Killer