Σάββατο, 14 Ιουλίου 2018

Αναθεώρηση 21 (Έκδοση 9.3)

1. Νέα συνάρτηση Δυαδικό.Όχι() ή Binary.Not. Παίρνει ένα ακέραιο 32 bit xωρίς πρόσημο (ή ένα νούμερο ισοδύναμο), και δίνει τον 32 bit χωρίς πρόσημο με αναστροφή όλων των ψηφίων.
Ισχύει το Δυαδικό.Όχι(α)+α=0xFFFFFFFF
 ή
Binary.Not(a)+a=0xFFFFFFFF
Υπάρχει κάτι παρόμοιο, το Δυαδικό.Αντίστροφο(), ή Binary.Neg() το οποίο παίρνει ακέραιο με πρόσημο, τον αναστρέφει ως δυαδικό χωρίς πρόσημο και γυρίζει έναν ακέραιο χωρίς πρόσημο
Ισχύει αυτό:
Δυαδικό.Αντίστροφο(α)+Δυαδικό.Ακέραιο(α)=0xFFFFFFFF
Binary.Neg(a)+uint(a)=0xFFFFFFFF

α=0xFFFFFFFF&   ' Αυτό είναι το -1, δείτε το & στο τέλος, το οποίο δηλώνει ότι είναι σταθερά 32bit, σε δεκαεξαδική μορφή, με πρόσημο.
α=-1221
Τύπωσε Δεκαεξ$(Δυαδικό.Ακέραιο(α))
FFFFFB3B
 
θα δώσει σε δεκαεξαδική μορφή το α, αφού από ακέραιο το μετατρέψει σε δυαδική αναπαράσταση ακέραιου χωρίς πρόσημο (έχει δηλαδή τα ίδια ψηφία).

2. Χρήση του Τοπικού, το κωδικού γλώσσας όταν μετατρέπου αλφαριθμητικά από UTF16LE σε ANSI, και το ανάποδο με τα Γραφή$() και Xar$()  ή Str$() και Chr$()
Στην εξαγωγή αρχείων ANSI ήδη λειτουργούσε η επιλογή του τοπικού, οπότε προστέθηκε και εδώ. Τα παλιά προγράμματα δεν έχουν πρόβλημα συμβατότητας. Το τοπικό ρυθμίζεται και από τις ρυθμίσεις, όταν επιλέγουμε Greek ή Latin, όπου στο Greek θα έχουμε το 1032 και στο Latin το 1033. Υπάρχουν και ως εντολές Greek και Latin. Εκτός από την αλλαγή τοπικού, αυτές βάζουν και τα  μηνύματα των σφαλμάτων και των βασικών διαλόγων στα ελληνικά ή στα αγγλικά ανάλογα.




\\ αν αλλάξουμε το τοπικό σε 1032 θα γραφτεί το peche και όχι το pêche
Τοπικό 1033
α$=γραφή$("pêche")
Τύπωσε Μήκος(α$)*2=5 '  5 Bytes
Τύπωσε Χαρ$(α$)="pêche"
Τύπωσε Μήκος(Χαρ$(α$))*2=10 ' 10 bytes

\\ Φυσικά δεν χρειάζεται το τοπικό όταν γράφουμε κανονικά
α$="pêche"
Τύπωσε Μήκος(α$)*2=10 '  10 Bytes
Τύπωσε α$="pêche"