Όλοι γνωρίζουν ότι η αλλαγή τιμής δυο μεταβλητών γίνεται με χρήση μιας τρίτης μεταβλητής ή με πρόσθεση/αφαίρεση. Η δεύτερη περίπτωση έχει το πρόβλημα να βγει ο αριθμός εκτός ορίων, βάσει τύπου.
Υπάρχει ένας ακόμα τρόπος, αν οι αριθμοί είναι 32bit χωρίς πρόσημο με τρεις Xor. Η
Xor στην Μ2000 λέγεται στα ελληνικά ΑΠΟ, όπου Αληθής Από Ψευδής δίνει Αληθής, και το Ψευδής από Αληθής δίνει Αληθής ενώ αν έχουμε όμοιες συνθήκες δίνει Ψευδής, δηλαδή Αληθής Από Αληθής δίνει Ψευδής και Ψευδής Από Ψευδής δίνει Ψευδής .
Εκτός από τα ΌΧΙ (ΔΕΝ), ΚΑΙ, Η και ΑΠΟ, για χρήση με λογικές μεταβλητές, υπάρχουν οι αντίστοιχες δυαδικές συναρτήσεις όπου εφαρμόζονται οι "πύλες" σε bit (δυαδικά ψηφία). Εδώ θα χρησιμοποιήσουμε την Δυαδικό.Από(α, β) όπου τα α και β είναι αριθμητικές τιμές. Για την Μ2000 η επιστροφή της συνάρτησης είναι τύπου Λογιστικό αλλά μόνο οι τιμές από 0x0 έως 0xFFFFFFFF ή σε δεκαδικό σύστημα από 0 έως 4294967295. Μπορούμε να δώσουμε ότι τύπο θέλουμε και θα γίνει αυτόματα προσαρμογή στο τύπο που δουλεύει (Λογιστικό ή Currency).
Εδώ δεν έχουμε πρόβλημα υπερχείλισης. Όλα τα bit χρησιμοποιούνται από την πύλη Xor, το καθένα από τον πρώτο αριθμό με το αντίστοιχο από το δεύτερο, χωρίς να μας ενδιαφέρει τι έχει το διπλανό του.
Για να γίνει η αλλαγή τιμών δυο τέτοιων αριθμών χρειάζεται να δώσουμε τρεις φορές την ίδια συνάρτηση Δυαδικό.Από(Α, Β), πρώτα στην Α, μετά στην Β και μετά στην Α και αυτό ήταν όλο!
Α=10
Β=31
Τύπωσε Α=10, Β=31
Α=Δυαδικό.Από(Α, Β)
Β=Δυαδικό.Από(Α, Β)
Α=Δυαδικό.Από(Α, Β)
Τύπωσε Α=31, Β=10
Αν θέλουμε να δουλέψουμε με αριθμούς με πρόσημο (32bit), τότε πρέπει να τους κάνουμε αναγωγή σε ακέραιους χωρίς πρόσημο. Και οι δυο αριθμοί πρέπει να δίνουν τα ίδια bit. Η συνάρτηση Δυαδικό.Ακέραιο() παίρνει έναν αριθμό με πρόσημο και δίνει τον ανάλογο χωρίς πρόσημο όπου αποθηκεύεται με ίδια bits. Η ανάποδη συνάρτηση είναι η Ακέραιο.Δυαδικό() η οποία παίρνει ένα αριθμό χωρίς πρόσημο και τον διαβάζει σαν αριθμό με πρόσημο με τα ίδια bits.
Α=Δυαδικό.Ακέραιο(-10)
Β=Δυαδικό.Ακέραιο(-45)
Α=Δυαδικό.Από(Α, Β)
Β=Δυαδικό.Από(Α, Β)
Α=Δυαδικό.Από(Α, Β)
Τύπωσε Ακέραιο.Δυαδικό(Α)=-45, Ακέραιο.Δυαδικό(Β)=-10