Νέες συναρτήσεις για χειρισμό bits σε 64bit εύρους τιμές. Μπορούμε να αλλάζουμε μπιτ, να ελέγχουμε καθώς και όλες τις άλλες δυνατότητες που έχουν και οι επεξεργαστές (CPU), όπως ολίσθηση και περιστροφή.
b=ΔΥΑΔ64.ΑΠΟ(0xFFFF_FFFF_FFFF_FFFF,0xAAAA_AAAA_AAAA_AAAA)
ΔΕΚΑΕΞ b
b=ΔΥΑΔ64.ΚΑΙ(b, 0xFFFF_0000_0000_FFFF)
ΔΕΚΑΕΞ b
b=ΔΥΑΔ64.Η(b, 0x1234_5678_0000)
ΔΕΚΑΕΞ b
b=ΔΥΑΔ64.ΠΡΟΣΘΕΣΗ(b, 0X8000_0000_0000_0001)
ΔΕΚΑΕΞ b
b=ΔΥΑΔ64.ΠΡΟΣΘΕΣΗ(b, 0X8000_0000_0000_0001)
ΔΕΚΑΕΞ b
b=ΔΥΑΔ64.ΟΛΙΣΘΗΣΗ(b, 8)
ΔΕΚΑΕΞ b
b=ΔΥΑΔ64.ΟΛΙΣΘΗΣΗ(b, -32)
ΔΕΚΑΕΞ b
b=ΔΥΑΔ64.ΠΕΡΙΣΤΡΟΦΗ(b, -16)
ΔΕΚΑΕΞ b
b=ΔΥΑΔ64.ΟΧΙ(b)
ΔΕΚΑΕΞ b
b=ΔΥΑΔ64.ΚΑΙ(b,0Xffff_ffff_ffff)
ΔΕΚΑΕΞ b
b=ΔΥΑΔ64.ΑΝΤΙΣΤΡΟΦΟ(b)
ΔΕΚΑΕΞ b
b=ΔΥΑΔ64.ΑΝΤΙΣΤΡΟΦΟ(0x7FF_FFFF_FFFF_FFFF)
ΔΕΚΑΕΞ b
b=ΔΥΑΔ64.ΑΝΤΙΣΤΡΟΦΟ(b)
ΔΕΚΑΕΞ b
b=ΔΥΟΜΙΣΑ64(0XAAAA_1234, 0xBBBB_5555)
ΔΕΚΑΕΞ b
b=ΔΥΟΜΙΣΑ(0XAAAA, 0x5555)
ΔΕΚΑΕΞ b
' ΔΥΑΔΙΚΟ.ΠΡΟΣΘΕΣΗ(a,b,c, ....)
b1=ΔΥΑΔΙΚΟ.ΠΡΟΣΘΕΣΗ(0X8000_0001, 0xFFFF_1234, 1)
ΔΕΚΑΕΞ b1, ΠΑΝΩΜΙΣΟ(b1), ΚΑΤΩΜΙΣΟ(b1)
b=ΔΥΑΔ64.ΠΡΟΣΘΕΣΗ(b, 0xFFFF_1234_0000_0000)
ΔΕΚΑΕΞ b, ΠΑΝΩΜΙΣΟ64(b), ΚΑΤΩΜΙΣΟ64(b)
ΔΕΚΑΕΞ ΔΥΟΜΙΣΑ64(ΚΑΤΩΜΙΣΟ64(b), ΠΑΝΩΜΙΣΟ64(b))
' ΔΥΑΔΙΚΟ.ΑΦΑΙΡΕΣΗ(a,b,c, ....)
b=ΔΥΑΔΙΚΟ.ΑΦΑΙΡΕΣΗ(0XFFFF_0001, 0XFFFF_0005, 1)
ΔΕΚΑΕΞ b, ΠΑΝΩΜΙΣΟ(b), ΚΑΤΩΜΙΣΟ(b)
b=ΔΥΑΔ64.ΑΦΑΙΡΕΣΗ(0X0000_FFFF_FFFF_0001, 0XFFFF_FFFF_FFFF_0005, 1)
ΔΕΚΑΕΞ b
b=ΔΥΑΔ64.ΒΑΛΕ(b,62)
ΔΕΚΑΕΞ b
b=ΔΥΑΔ64.ΒΓΑΛΕ(b,47)
ΔΕΚΑΕΞ b
ΤΥΠΩΣΕ ΔΥΑΔ64.ΕΧΕΙ(b, 29, 27)=true
b=ΔΥΑΔ64.ΒΓΑΛΕ(b,29, 15)
ΔΕΚΑΕΞ b
B=ΔΥΑΔ64.ΒΑΛΕ(0,60,58,4,1) ' make a 64bit setting 4 bits
ΔΕΚΑΕΞ b
ΤΥΠΩΣΕ ΔΥΑΔ64.ΕΧΕΙ(b, 57)=false
B=ΔΥΑΔ64.ΒΑΛΕ(b,57)
ΔΕΚΑΕΞ b
ΤΥΠΩΣΕ ΔΥΑΔ64.ΕΧΕΙ(b, 57)=true
b2=ΔΥΑΔΙΚΟ.ΒΑΛΕ(0,9,8,0)
ΔΕΚΑΕΞ b2
ΤΥΠΩΣΕ b2=0x301 ' bit 9,8,0
ΔΕΚΑΕΞ ΤΙΜΗ(2^9+2^8+2^0->ΛΟΓΙΣΤΙΚΟΣ), b2
b2=ΔΥΑΔΙΚΟ.ΒΓΑΛΕ(b2,12, 8)
ΔΕΚΑΕΞ b2,
ΤΥΠΩΣΕ b2=0x201
ΤΥΠΩΣΕ ΔΥΑΔ(-1%)=0ΧFFFF
ΤΥΠΩΣΕ ΔΥΑΔ(-1)=0ΧFFFF_FFFF
ΤΥΠΩΣΕ ΔΥΑΔ64(-1)=0ΧFFFF_FFFF_FFFF_FFFF
ΤΥΠΩΣΕ ΔΥΑΔΙΚΟ.ΑΚΕΡΑΙΟ64(-1)=0ΧFFFF_FFFF_FFFF_FFFF
ΤΥΠΩΣΕ ΤΥΠΟΣ(ΔΥΑΔΙΚΟ.ΑΚΕΡΑΙΟ64(-1))="Decimal"
ΤΥΠΩΣΕ ΑΚΕΡΑΙΟ.ΔΥΑΔΙΚΟ(0ΧFFFF_FFFF_FFFF_FFFF, 2)=0XFFFF%
ΤΥΠΩΣΕ ΤΥΠΟΣ(ΑΚΕΡΑΙΟ.ΔΥΑΔΙΚΟ(0ΧFFFF_FFFF, 4))="Currency"
ΤΥΠΩΣΕ ΑΚΕΡΑΙΟ.ΔΥΑΔΙΚΟ(0ΧFFFF_FFFF_FFFF_FFFF, 4)=0XFFFF_FFFF&
ΤΥΠΩΣΕ ΤΥΠΟΣ(ΑΚΕΡΑΙΟ.ΔΥΑΔΙΚΟ(0ΧFFFF_FFFF_FFFF_FFFF))="Long Long"
ΤΥΠΩΣΕ ΑΚΕΡΑΙΟ.ΔΥΑΔΙΚΟ(0ΧFFFF_FFFF_FFFF_FFFF)=0XFFFF_FFFF_FFFF_FFFF&&
ΤΥΠΩΣΕ ΑΚΕΡΑΙΟ.ΔΥΑΔΙΚΟ(0ΧFFFF_FFAA, 8)=0ΧFFFF_FFAA&&
ΤΥΠΩΣΕ ΤΥΠΟΣ(ΑΚΕΡΑΙΟ.ΔΥΑΔΙΚΟ(0ΧFFFF_FFAA, 8))="Long Long"
Και στα αγγλικά:
b=BIT64.XOR(0xFFFF_FFFF_FFFF_FFFF,0xAAAA_AAAA_AAAA_AAAA)
hex b
b=BIT64.AND(b, 0xFFFF_0000_0000_FFFF)
hex b
b=BIT64.OR(b, 0x1234_5678_0000)
hex b
b=BIT64.ADD(b, 0X8000_0000_0000_0001)
hex b
b=BIT64.ADD(b, 0X8000_0000_0000_0001)
hex b
b=BIT64.SHIFT(b, 8)
hex b
b=BIT64.SHIFT(b, -32)
hex b
b=BIT64.ROTATE(b, -16)
hex b
b=BIT64.NOT(b)
hex b
b=BIT64.AND(b,0Xffff_ffff_ffff)
hex b
b=BIT64.NEG(b)
hex b
b=BIT64.NEG(0x7FF_FFFF_FFFF_FFFF)
hex b
b=BIT64.NEG(b)
hex b
b=HILOWLONG(0XAAAA_1234, 0xBBBB_5555)
hex b
b=HILOWWORD(0XAAAA, 0x5555)
hex b
' BINARY.ADD(a,b,c, ....)
b1=BINARY.ADD(0X8000_0001, 0xFFFF_1234, 1)
hex b1, HIWORD(b1), LOWORD(b1)
b=BIT64.ADD(b, 0xFFFF_1234_0000_0000)
hex b, HILONG(b), LOLONG(b)
hex HILOWLONG(LOLONG(b), HILONG(b))
' BINARY.SUB(a,b,c, ....)
b=BINARY.SUB(0XFFFF_0001, 0XFFFF_0005, 1)
hex b, HIWORD(b), LOWORD(b)
b=BIT64.SUB(0X0000_FFFF_FFFF_0001, 0XFFFF_FFFF_FFFF_0005, 1)
hex b
b=BIT64.SET(b,62)
hex b
b=BIT64.RESET(b,47)
hex b
print BIT64.TEST(b, 29, 27)=true
b=BIT64.RESET(b,29, 15)
hex b
B=BIT64.SET(0,60,58,4,1) ' make a 64bit setting 4 bits
hex b
print BIT64.TEST(b, 57)=false
B=BIT64.SET(b,57)
hex b
print BIT64.TEST(b, 57)=true
b2=BINARY.SET(0,9,8,0)
hex b2
print b2=0x301 ' bit 9,8,0
hex val(2^9+2^8+2^0->currency), b2
b2=BINARY.RESET(b2,12, 8)
hex b2,
print b2=0x201
print uint(-1%)=0ΧFFFF
print uint(-1)=0ΧFFFF_FFFF
print uint64(-1)=0ΧFFFF_FFFF_FFFF_FFFF
print type(uint64(-1))="Decimal"
print sint(0ΧFFFF_FFFF_FFFF_FFFF, 2)=0XFFFF%
print type(sint(0ΧFFFF_FFFF, 4))="Currency"
print sint(0ΧFFFF_FFFF_FFFF_FFFF, 4)=0XFFFF_FFFF&
print type(sint(0ΧFFFF_FFFF_FFFF_FFFF))="Long Long"
print sint(0ΧFFFF_FFFF_FFFF_FFFF)=0XFFFF_FFFF_FFFF_FFFF&&
print sint(0ΧFFFF_FFAA, 8)=0ΧFFFF_FFAA&&
print type(sint(0ΧFFFF_FFAA, 8))="Long Long"
Δεν υπάρχουν σχόλια:
Δημοσίευση σχολίου
You can feel free to write any suggestion, or idea on the subject.