VBA negáció. Összehasonlító operátorok (Visual Basic) Alapvető VBA adattípusok
jel | Név | Leírás |
---|---|---|
= | Egyenlő | Igaz értéket ad vissza, ha a bal és a jobb oldali operandus egyenlő. Vegye figyelembe, hogy ez a hozzárendelési operátor túlterhelése. |
<> | Nem egyenlő | Igaz értéket ad vissza, ha a bal és a jobb oldali operandus nem egyenlő. |
> | Jobb mint | Igaz értéket ad vissza, ha a bal oldali operandus nagyobb, mint a jobb oldali operandus. |
< | Kevesebb, mint | Igaz értéket ad vissza, ha a bal oldali operandus kisebb, mint a jobb oldali operandus. |
>= | Több vagy egyenlő | Igaz értéket ad vissza, ha a bal oldali operandus nagyobb vagy egyenlő, mint a jobb oldali operandus. |
<= | Kisebb vagy egyenlő | Igaz értéket ad vissza, ha a bal oldali operandus kisebb vagy egyenlő, mint a jobb oldali operandus. |
Is | Referencia tőke | Igaz értéket ad vissza, ha a bal oldali objektumhivatkozás ugyanaz, mint a jobb oldali objektumhivatkozás. Használható a Semmivel (null objektum hivatkozás) is mindkét oldalon. Jegyzet. Az Is operátor megpróbálja mindkét operandust objektumra kényszeríteni, mielőtt végrehajtaná az összehasonlítást. Ha bármelyik oldal primitív típus vagy Olyan változat, amely nem tartalmaz objektumot (nem objektum altípust vagy vtEmpty-t), az összehasonlítás 424-es futásidejű hibát eredményez – „Objektum szükséges”. Ha valamelyik operandus egy másikhoz tartozik felület ugyanarról az objektumról, az összehasonlítás True értéket ad vissza. Ha ellenőriznie kell mind a példány érvényességét, mind a És interfész, ObjPtr(left) = ObjPtr(right) use ObjPtr(left) = ObjPtr(right) . |
Megjegyzések
A VBA szintaxis lehetővé teszi az összehasonlító operátorok "láncolását", de általában ezeket a konstrukciókat kerülni kell. Az összehasonlítás mindig balról jobbra történik, egyszerre csak 2 operanduson, és minden összehasonlítás egy logikai értéket eredményez. Például a kifejezés...
A = 2: b = 1: c = 0 kif = a > b > c
Bizonyos szövegkörnyezetekben tesztként is olvasható, hogy megtudja, b a és c között van-e. A VBA-ban ezt a következőképpen értékelik:
A = 2: b = 1: c = 0 kif = a > b > c kif = (2 > 1) > 0 kif = igaz > 0 kif = -1 > 0 "CInt(igaz) = -1 kif = hamis
Az objektummal operandusként használt összes összehasonlító operátor kivételével az objektum alapértelmezett tagjának visszatérési értéke alapján kerül kiértékelésre. Ha az objektumnak nincs alapértelmezett tagja, az összehasonlítás 438-as futásidejű hibát eredményez - "Az objektum nem támogatja a tulajdonságát vagy metódusát."
Ha az objektum nincs inicializálva, az összehasonlítás 91-es futásidejű hibát eredményez - "Objektumváltozó vagy C zárolt blokkváltozó".
Ha a szó szerinti Semmit más összehasonlító operátorral is használja, mint az Is , az fordítási hibát fog eredményezni - "Az objektum érvénytelen használata".
Ha az alapértelmezett Objektum egy másik objektum, a VBA folyamatosan hívja minden következő visszatérési érték alapértelmezett elemét, amíg vagy egy primitív típust nem ad vissza, vagy egy hiba nem jelenik meg. Tegyük fel például, hogy a SomeClass-nek van egy alapértelmezett tagértéke , amely a ChildClass egy példánya a ChildValue by ChildValue taggal. Összehasonlítás...
Set x = New SomeClass Debug.Print x > 42
A következőképpen lesz besorolva:
Set x = New SomeClass Debug.Print x.Value.ChildValue > 42
Ha valamelyik operandus numerikus és egy másik operandus egy karakterlánc vagy a String altípusának változata, akkor numerikus összehasonlítás történik. Ebben az esetben, ha a karakterláncot nem lehet számra önteni, az összehasonlítás eredménye a 13-as futásidejű hiba – "Típushiba".
Ha mindkét Az operandus egy karakterlánc vagy a String altípusának változata, a karakterlánc-összehasonlítás a kódmodul paraméter-összehasonlítási paramétere alapján történik. Ezeket az összehasonlításokat karakterenként végezzük. vegye figyelembe, hogy karakterábrázolás számot tartalmazó karakterlánc, Nem megegyezik a számértékek egyeztetésével:
Public Sub Példa() Dim left As Variant Dim right as Variant left = "42" right = "5" Debug.Print left > right "Prints False Debug.Print Val(left) > Val(right) "Prints True End Sub
Emiatt a numerikus egyenlőtlenségek összehasonlítása előtt győződjön meg arról, hogy a String vagy Variant változók számokká lettek öntve.
Ha az egyik operandus egy dátum, akkor a mögöttes kettős érték numerikus összehasonlítása történik, ha a másik operandus numerikus, vagy numerikus típussá konvertálható.
Ha a másik operandus egy Karakterlánc vagy egy String altípusának Változata, amely az aktuális területi beállítás használatával egy dátumra önthető, akkor a karakterlánc a dátumra lesz öntve. Ha nem alkalmazható egy dátumra az aktuális nyelvterületen, az összehasonlítás eredménye a 13-as futásidejű hiba – "Típushiba".
Óvatosan kell eljárni a dupla vagy egyszeri értékek és a logikai értékek összehasonlításakor. Más numerikus típusoktól eltérően a nem null értékek nem tekinthetők igaznak a VBA viselkedése miatt, amikor egy összehasonlító adattípust népszerűsít a dupla lebegővel:
Nyilvános alpélda() Dim Test Dupla tesztként = 42 Debug.Print CBool(Test) "Igazt nyomtat. "Az igaz érték kettőssé kerül elő - A teszt nem kerül átadásra Boolean Debug.Print Test = True "Hamis nyomtatás" Explicit leadással: Debug.Print CBool(Test) = True "Igazt nyomtat Debug.Print CDbl(-1) = CDbl(True) "True End Sub
Operátor | Szintaxis | Leírás |
ÉS | A ÉS B | Konjunkció: Ha A és B igaz, akkor igaz. Ellenkező esetben - Hamis |
VAGY | A VAGY B | Diszjunkció: Ha bármelyik operandus igaz, akkor igaz. Ellenkező esetben - Hamis |
NEM | NEM A | Tagadás: Ha A hamis, akkor igaz. Ellenkező esetben - Hamis |
XOR | A XOR B | Kivétel: Ha A igaz vagy B igaz, akkor igaz. Ellenkező esetben - Hamis |
EQV | A EQV B | Egyenértékűség: Ha A értéke megegyezik B-vel, akkor igaz. Ellenkező esetben - Hamis |
MANÓ | A IMP B | Következmény: Ha A igaz és B hamis, akkor hamis. Különben – igaz |
A logikai operátor operandusaként bármilyen érvényes kifejezést használhat, amely logikai eredménnyel rendelkezik, valamint olyan számot, amely logikai értékké konvertálható.
Egy logikai művelet eredménye egy logikai típusú érték (vagy Null, ha legalább az egyik operandus nulla).
Logikai operátor ÉS
Szintaxis:
Operandus_1 ÉS Operandus_2
Az ÉS operátor végrehajtja logikai kötőszó.
A művelet eredménye csak akkor igaz, ha mindkét operandus igaz, egyébként pedig hamis.
igazságtáblázat
Az ÉS operátor több operandushoz is használható:
(5 3) ÉS (5=6) eredmény hamis
Az operandusok számától függetlenül a logikai ÉS művelet csak akkor ad igaz eredményt, ha a kifejezés minden operandusa igaz értékre van kiértékelve. Minden más esetben az eredmény hamis lesz. Vegye figyelembe, hogy az operandusok zárójelben vannak. A VBA először kiértékeli az egyes operandusok értékét a zárójelben, majd a teljes kifejezést.
Logikai operátor VAGY
Szintaxis:
Operandus_1 VAGY Operandus_2
A VAGY operátor végrehajtja logikai diszjunkció.
A művelet eredménye igaz, ha legalább az egyik operandus igaz, egyébként pedig hamis.
igazságtáblázat
Az OR operátor több operandushoz is használható:
(5 3) VAGY (5=6) eredmény igaz
Az operandusok számától függetlenül a logikai VAGY művelet eredménye mindig igaz lesz, ha a kifejezés legalább egyik operandusa igazra értékeli. Ellenkező esetben az eredmény hamis lesz.
Az ÉS és VAGY operátorok kombinálhatók:
((5 3)) VAGY (5=6) eredmény igaz
Boole-operátor NEM
Szintaxis:
NEM operandus
A NOT operátor igen logikai tagadás.
A NOT operátor csak egy operandust használ.
igazságtáblázat
Az ÉS VAGY NEM operátorok kombinálhatók:
((5 3)) VAGY NEM (5=6) eredmény igaz
XOR logikai operátor
Szintaxis:
Operandus_1 XOR Operandus_2
Az XOR operátor végrehajtja logikai kivétel.
Ennek a műveletnek az eredménye True, ha az operandusok eltérő értékekkel rendelkeznek, egyébként pedig False.
igazságtáblázat
((5 3)) VAGY NEM (5=6) XOR (5=5) eredmény hamis
Logikai operátor EQV
Szintaxis:
Operandus_1 EQV Operandus_2
Az EQV operátor az operátor logikai egyenértékűség.
Ennek a műveletnek az eredménye igaz, ha az operandusok értéke megegyezik, ellenkező esetben False.
igazságtáblázat
((5 3)) VAGY NEM (5=6) EQV (5=5) eredmény igaz
Logikai operátor IMP
Szintaxis:
Operandus_1 IMP Operandus_2
Az IMP utasítás logikai műveletet hajt végre következményei.
igazságtáblázat
((5 3)) VAGY NEM (5=6) IMP (5=5) eredmény igaz
Az IMP logikai operátor a legkevésbé intuitív az összes logikai operátor közül. Szerencsére használatának igénye meglehetősen ritkán merül fel.
A Visual Basicben öt alapvető és fontos logikai operátor található: And, Or, Not, Xor és Eqv. Most megpróbálom elmagyarázni mindegyik szerepét!
Szóval És!
Talán ez a legegyszerűbb és legszükségesebb logikai operátor a többi között.
Segítség:
Két kifejezés konjunkciójának (logikai ÉS) eredményét adja vissza.
Szintaxis:
eredmény = kifejezés1Éskifejezés2
Azok. eredmény csak akkor lesz igaz, ha a kifejezés1ÉSkifejezés2. Az operátor által visszaadott értékeket a következő táblázat tartalmazza:
kifejezés1 | kifejezés2 | eredmény |
Igaz | Igaz | Igaz |
Igaz | Hamis | Hamis |
Igaz | Nulla | Nulla |
Hamis | Igaz | Hamis |
Hamis | Hamis | Hamis |
Hamis | Nulla | Hamis |
Nulla | Igaz | Nulla |
Nulla | Hamis | Hamis |
Nulla | Nulla | Nulla |
És most egy kis példa:
Képzeljük el, hogy a User_Has_Computer és User_Has_Car változók logikai értékként vannak deklarálva, és bizonyos műveletek során igaz vagy hamis értékeket vesznek fel. Beállít egy feltételt, amely ellenőrzi az alábbi értékeket:
Mi magunk emuláljuk :) - írja be valahova a következő sorokat:
Dim User_Has_Car Boolean-ként
User_Has_Computer = Igaz
User_Has_Car=Igaz
Ha User_Has_Computer and User_Has_Car Akkor
MsgBox "Szerencsés ember vagy!"
Vége Ha
Ellenőrzéskor adott állapot egy üzenet jelenik meg a képernyőn, amely bejelenti, hogy a felhasználó boldog ember, mert. neki van kocsija ÉS számítógép:-)! Most tegyen egy """ aposztrófot a harmadik vagy negyedik sor elé - írja ki a sort. Most az egyik változó alapértelmezés szerint False lesz. Most NEM jelenik meg az üzenet, mert a felhasználó nem nagyon örül, hogy van autója VAGY számítógép...
A következő operátor nem kevésbé egyszerű – Or.
Segítség:
Logikai VAGY (összeadás) műveletet hajt végre két kifejezésen.
Szintaxis:
eredmény = kifejezés1Vagykifejezés2
Az eredmény csak akkor lesz igaz, ha csak az egyik kifejezés igaz. Az operátor által visszaadott értékeket a következő táblázat tartalmazza:
kifejezés1 | kifejezés1 | eredmény |
Igaz | Igaz | Igaz |
Igaz | Hamis | Igaz |
Igaz | Nulla | Igaz |
Hamis | Igaz | Igaz |
Hamis | Hamis | Hamis |
Hamis | Nulla | Nulla |
Nulla | Igaz | Igaz |
Nulla | Hamis | Nulla |
Nulla | Nulla | Nulla |
És ismét egy kis példa a régi logikai változókkal User_Has_Computer és User_Has_Car, amelyek bizonyos műveletek során igaz vagy hamis értéket vettek fel.
Dim User_Has_Computer As Boolean
Dim User_Has_Car Boolean-ként
User_Has_Computer = Hamis
User_Has_Car=Igaz
Ha User_Has_Computer vagy User_Has_Car Akkor
MsgBox "Majdnem boldog ember vagy!"
Vége Ha
Ha ez a feltétel be van jelölve, egy üzenet jelenik meg a képernyőn, amely közli, hogy a felhasználó szinte boldog ember, mert. van autója, de nincs számítógépe:-|...
Nem operátor.
Segítség:
Logikai tagadási műveletet hajt végre egy kifejezésen.
Szintaxis:
eredmény
= Nem kifejezés
Azok. eredmény ellentétessé válik kifejezés(kivéve Null). Az operátor által visszaadott értékeket a következő táblázat tartalmazza:
Példa:
Dim User_Has_Computer As Boolean
User_Has_Computer = Hamis
Ha nem User_Has_Computer Akkor
MsgBox "Sajnálom... :)"
Vége Ha
Elmagyarázom: az If ... akkor feltétel akkor hajtódik végre, ha valamelyik kifejezés (a helyben ...) igaz. Képzeljük el, hogy a változó User_Has_Computer = Hamis. Aztán a vonal
A Not User_Has_Computer kiértékelése igaz, és a feltétel teljesül!
XOR operátor.
Segítség:
XOR műveletet hajt végre két kifejezésen.
Szintaxis:
[eredmény =]
kifejezés1
Xor kifejezés2
Ez az operátor elvileg hasonló az Or-hoz, de nem egyszerű VAGY, és az exkluzív VAGY. Ha az egyik és csak az egyik kifejezéseket igaz (igaz értéke van), eredmény igaz. És az Or operátor két igazat is elismer kifejezéseket.
Eredmény
Példa:
Dim User_Has_Computer As Boolean
Dim User_Has_Car Boolean-ként
User_Has_Computer = Hamis
User_Has_Car=Igaz
Ha User_Has_Computer X or User_Has_Car Akkor
MsgBox "Szükséged van egy autóra ÉS egy számítógépre!"
Vége Ha
Itt is, csakúgy, mint az előző példában, a feltétel csak akkor teljesül, ha a User_Has_Computer karakterlánc Xor User_Has_Car igaz (= True). És akkor és csak akkor igaz, ha csak az egyik feltétel teljesül. Ha mindkettő, akkor a feltétel már nem teljesül.
Equv operátor.
Segítség:
Két kifejezés logikai egyenértékűségének tesztelésére szolgál.
Szintaxis:
eredmény
= kifejezés1 Equv kifejezés2
Itt minden nagyon egyszerű: az eredmény akkor lesz igaz, ha mindkét kifejezés igaz vagy hamis. Eredmény a következőképpen van meghatározva:
Példa:
Dim User_Has_Computer As Boolean
Dim User_Has_Car Boolean-ként
User_Has_Computer = Igaz
User_Has_Car=Igaz
Ha User_Has_Computer Eqv User_Has_Car Akkor
MsgBox "Te vagy boldog vagy boldogtalan ember!"
Vége Ha
Itt a számítógép „boldognak vagy boldogtalannak” fog nevezni, mert. a feltétel csak akkor teljesül, ha a felhasználónak van gépe és számítógépe is, vagy egyik sem.
Általában az összehasonlító műveleteket ciklusos utasításokban használjuk, hogy döntést hozzunk a műveletek további menetéről.
Minden összehasonlítási művelet eredménye egy logikai érték: igaz, hamis.
Ha egy összehasonlítási kifejezésben mindkét operandus azonos adattípusú, a VBA egyszerű összehasonlítást hajt végre ezen a típuson.
Ha egy összehasonlító kifejezésben mindkét operandusnak van meghatározott típusa, és ezek a típusok nem kompatibilisek, a VBA típushibát ad ki.
Ha az összehasonlítási kifejezésben az egyik vagy mindkét operandus Variant típusú változó, a VBA megpróbálja átalakítani a Variant típust valamilyen kompatibilis típusra.
String összehasonlítás
Amikor a karakterláncokat relációs operátorokkal hasonlítja össze, a VBA karakterenként összehasonlítja az egyes karakterláncokat balról jobbra.
A VBA-ban az egyik karakterlánc csak akkor egyenlő a másikkal, ha mindkét karakterlánc pontosan ugyanazokat a karaktereket tartalmazza, pontosan ugyanabban a sorrendben, és mindkét karakterlánc azonos hosszúságú. Például az "abcd" "abcd" "abcd" karakterláncok nem egyenlőek egymással, mert A VBA nem hagyja figyelmen kívül a kezdő és a záró szóköz karaktereket a karakterláncok összehasonlításakor.
Legyen óvatos, amikor változó hosszúságú karakterláncokat hasonlít össze.
Bináris és szöveges karakterláncok összehasonlítása
A szöveg tárolására a számítógép olyan sémát használ, amelyben minden megjelenített karakter egyedi számmal rendelkezik. Az ábécé minden betűjének megvan a sajátja egyedi számok. Általában levelek nagybetűs kisebb számokat tartalmaznak, mint a kisbetűket. Egy bizonyos betűnek vagy szimbólumnak megfelelő számot hívnak karakter kód.
Ha bináris összehasonlítást végez egy karakterláncon VBA információ minden karakterhez egy szám bináris megfelelőjét használja. Ezt az összehasonlítási módszert ún bináris vagy binárisés ez az alapértelmezett összehasonlítási módszer.
Mert a nagybetűknek kisebb bináris számok vannak, a nagybetűk ábécé sorrendben vannak a kisbetűk előtt. Ezért a karakterláncok bináris összehasonlításakor az "ABC" karakterlánc kisebb lesz, mint az "abc" karakterlánc.
A karakterláncok szöveges összehasonlításakor a VBA nem használja a karakterek bináris megfelelőjét, és nem tesz különbséget a kis- és nagybetűk között. Szöveges összehasonlításban az "abc" karakterlánc egyenlő az "ABC" karakterlánccal.
Az Option Compare direktíva a karakterlánc-összehasonlítási módszer kiválasztására szolgál.
Opció Összehasonlítás
Ennek az irányelvnek a modul deklarációs hatókörében kell lennie.
Karakterlánc összefűzése
Az egyik karakterlánc egy másikhoz való összekapcsolását hívják karakterlánc összefűzés.
A karakterlánc-összefűzést általában különböző forrásokból származó karakterláncok létrehozására használják egy üzenet megjelenítésére szolgáló eljárás során. A VBA-nak két karakterlánc-összefűzési operátora van.
Összefűzési operátor (&)
A (&) operátor a VBA-ban csak karakterlánc-összefűzéshez használható.
Szintaxis
Operandus_1 & Operandus_2 [& Operandus_3..]
Az operandus_N bármely érvényes karakterlánc vagy numerikus kifejezés (amely karakterláncsá konvertálódik).
A karakterlánc-összefűzés eredményének adattípusa String.
Ha egy karakterlánc-összefűzési kifejezésben az operandus üres vagy nulla, a VBA ezt az operandust nulla hosszúságú karakterláncként értelmezi (karaktereket nem tartalmazó karakterláncként).
Jegyzet! Az összefűzési művelet szimbólumát (&) szóközzel kell elválasztani a változó nevétől, mert ellenkező esetben a VBA ezt a karaktert hosszú típusú definíciós karakterként értelmezheti.
Összeadás operátor karakterlánc-összefűzésben
A (+) operátort is használhatja a karakterláncok összefűzésére.
Ennek az operátornak ugyanaz a szintaxisa és követelményei, mint az (&) operátornak. Azonban meg kell érteni, hogy a VBA-ban a (+) operátor fő célja az aritmetikai összeadás. Ezért a programkód félreérthető olvasásának elkerülése érdekében erősen ajánlott az operátor (&) használata a karakterlánc-összefűzéshez.
Működési prioritások
A programkódban szereplő kifejezések közül sok összetett (összetett), pl. két vagy több kifejezésből áll.
Az összetett kifejezések kiértékelésekor a VBA a következő szabályokat követi:
- A kifejezések zárójelbe tett részei mindig először kerülnek kiértékelésre;
- Az operátori hierarchiától függően bizonyos műveleteket hajtanak végre (az alábbi táblázat);
- Ha az operátorok hierarchiája egyenlő, akkor a rendszer balról jobbra értékeli őket.
Operátor |
Az összes aritmetikai operátor részletes leírása itt található, összehasonlító operátorok, logikai és összefűzési operátorok. Megpróbáltam mindent összegyűjteni, amit ezekről az operátorokról tudni lehet. Minden operátorhoz tartozik egy példa. A leírásokat a szabványos súgóból fordítottam "a VB5.
Aritmetikai operátorok
^ operátor (hatványozás)
Ez az operátor egy szám hatványra emelésére szolgál.
Szintaxis:
eredmény = szám^fokozat
Lehetőségek:
eredmény
szám
fokozat- kötelező; bármilyen numerikus kifejezés
Megjegyzések:
szám csak akkor lehet negatív fokozat egy egész szám. Ha több ^ operátort használunk ugyanabban a kifejezésben, akkor az értékelés balról jobbra történik. Általában az eredmény típusa Double. Ha azonban ill fokozat, vagy szám- Akkor nulla kifejezés eredmény Null is.
Példa:
Homályos MyValue
A MyValue = 2^2" 4-et ad vissza.
MyValue = 2^3^3" vissza fog térni
512 (2^3=8, 8^3=512)
SajátÉrték=(-5)^3" vissza fog térni
-125.
Tanács:
Ha egy számot állandó hatványra kell emelnie, akkor jobb, ha több operátort - szorzást, mint egy - hatványozást használ, ítélje meg maga, egy millió ciklus telik el az átadott kifejezés kiszámításával:
teszt1 = 2^8" 893 ms
teszt1 = 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 " 130 ms!
operátor * (szorzás)
Két szám szorzására szolgál.
Szintaxis:
eredmény = szám1* 2. számú
Lehetőségek:
eredmény- kötelező; bármely numerikus változó
szám1- Feltétlenül; bármilyen numerikus kifejezés
2. számú- Feltétlenül; bármilyen numerikus kifejezés
Megjegyzések:
Az eredmény adattípusa általában megegyezik a két szám legpontosabb típusával. A pontosság sorrendje a legnagyobbtól a legkisebbig: Byte, Integer, Long, Single, Currency, Dupla, Tizedes. Igaz, vannak kivételek:
- Ha az Single-t és a Long-ot megszorozzuk, akkor az eredmény Dupla
- Ha az adattípus eredmény- Hosszú szingli vagy dátum, amely nem tartalmazza magának a kifejezésnek az eredményét, majd az eredményt egy Double-t tartalmazó Variánssá alakítjuk.
Ha szám1 vagy 2. számú
A szorzás pontossági sorrendje eltér az összeadásnál és kivonásnál használtaktól.
Példa:
Homályos MyValue
MyValue = 2 * 2" 4-et ad vissza.
MyValue = 459,35 * MyValue " Visszatér: 495,35 * 4
operátor / (részleg)
Két szám elosztására szolgál, és lebegőpontos eredményt kapunk.
Szintaxis:
eredmény = szám1 / 2. számú
Lehetőségek:
eredmény- kötelező; bármely numerikus változó
szám1- Feltétlenül; bármilyen numerikus kifejezés
2. számú- Feltétlenül; bármilyen numerikus kifejezés
Megjegyzések:
Eredményáltalában Double típusú. Igaz, vannak kivételek:
- Ha mindkét kifejezés Byte, Integer, Single típusú, akkor az eredmény Single. Ha azonban a kifejezés méretei nem férnek bele a Single hatókörébe, hiba történik.
- Ha mindkét kifejezés Variant típusú, amely Byte-ot, Integer-t vagy Single-t tartalmaz, akkor az eredmény egy Single Variant. Ha azonban a kifejezés méretei nem férnek bele a Single hatókörébe, akkor a Double Variant.
- Ha az egyik szám Decimális típusú, akkor az eredmény Decimális.
Ha szám1 vagy 2. számú- Null, egyszerűen normál 0-ként értelmezhető.
Példák:
Homályos MyValue
MyValue = 10/4"
!} vissza fog térni
2.5.
MyValue = 10/3" vissza fog térni
3.333333.
operátor \ (egész osztás)
Két szám elosztására szolgál, és egész számot kapunk.
Szintaxis:
eredmény = szám1 \ 2. számú
Lehetőségek:
eredmény- kötelező; bármely numerikus változó
szám1- Feltétlenül; bármilyen numerikus kifejezés
2. számú- Feltétlenül; bármilyen numerikus kifejezés
Megjegyzések:
Mielőtt egy ilyen felosztás megtörténne, a kifejezések bájtokra, egészekre vagy hosszú kifejezésekre kerekednek. Az eredmény adattípusa általában Byte, Byte variáns, Integer, Integer variáns, Long vagy Long variáns. Bármely törtrész csonka.
Ha azonban bármelyik kifejezés Null, akkor az eredmény Null. Minden üres kifejezést tartalmazó kifejezés 0-ként értelmeződik.
Példák:
Homályos MyValue
MyValue=11\4" vissza fog térni
2.
MyValue=9\3" vissza fog térni
3.
MyValue=100\3" vissza fog térni
33.
Mod operátor (a részleg többi része)
Két szám felosztására és az osztás maradékának kiszámítására szolgál.
Szintaxis:
eredmény = szám1 Mod 2. számú
Lehetőségek:
eredmény- kötelező; bármely numerikus változó
szám1- Feltétlenül; bármilyen numerikus kifejezés
2. számú- Feltétlenül; bármilyen numerikus kifejezés
Megjegyzések:
Osztáskor a ponttal ellátott számok kerekítésre kerülnek. Például a következő kifejezés eredménye 5:
A=19 Mód 6.7
Mi folyik itt? Először a 6,7-et felkerekítjük 7-re. Ezután megtörténik az osztás, 2,7-et kapunk.... Az osztás maradéka = 5. (2 * 7 = 14, 19 - 14 = 5).
Az eredmény általában Byte, Byte variáns, Integer, Integer variáns, Long vagy Variant típusú, amely hosszúságot tartalmaz.
Ha bármelyik kifejezés Null, akkor az eredmény Null. Minden üres kifejezést tartalmazó kifejezés 0-ként értelmeződik.
Példák:
Homályos Saját Eredmény
MyResult = 10 Mod 5" vissza fog térni
0.
MyResult = 10 Mod 3" vissza fog térni
1.
MyResult=12 Mod 4.3" vissza fog térni
0.
MyResult = 12,6 Mod 5" vissza fog térni
3.
operátor + (kiegészítés)
Két szám hozzáadására szolgál.
Szintaxis:
eredmény = kifejezés1+kifejezés2
Lehetőségek:
eredmény- kötelező; bármely numerikus változó
kifejezés1
kifejezés2- Feltétlenül; bármilyen kifejezést
Megjegyzések:
Amikor a + operátort használja, nem tudja meghatározni, hogy mi történjen, összeadás vagy karakterlánc-összefűzés. Az összefűzéshez használja a & operátort a félreértések elkerülése és a kód olvashatóbbá tétele érdekében.
Ha az egyik kifejezés nem Változat, akkor a következő szabályok érvényesek:
- Ha mindkét kifejezés numerikus típusú (Bájt, Logikai, Integer, Long, Single, Double, Date, Currency vagy Decimális), akkor hozzáadódnak.
- Ha mindkét karakterlánc kifejezés összefűzés.
- Ha az egyik kifejezés numerikus típusú, a másik pedig bármilyen Variant értéket tartalmaz, beleértve a Null értéket is, akkor összeadás történik.
- Ha az egyik kifejezés egy karakterlánc, a másik pedig bármilyen Variant érték, akkor összefűzés történik.
- Ha az egyik kifejezés üres értéket tartalmaz, akkor a második, módosítatlan kifejezés kerül visszaadásra.
- Ha az egyik kifejezés numerikus típusú, a másik pedig egy karakterlánc, akkor Típushibás hiba lép fel.
- Ha bármely kifejezés Null, akkor az eredmény is Null.
Ha mindkét kifejezés Változat, akkor a következő szabályok érvényesek:
- Ha mindkét kifejezés szám, akkor összeadódnak.
- Ha mindkét kifejezés karakterlánc, akkor összefűzve vannak.
- Ha az egyik kifejezés egy szám, a másik pedig egy karakterlánc, akkor összeadás történik.
Normál összeadás esetén az eredmény adattípusa általában megegyezik a két szám legpontosabb típusával. A pontosság sorrendje: Byte, Integer, Long, Single, Double, Currency és Decimális. Vannak kivételek:
- Ha összeadjuk a Single-t és a Long-ot, akkor az eredmény Dupla
- Ha egy Dátum típusú kifejezést hozzáadunk bármely más kifejezéshez, az eredmény egy dátum.
Ha az egyik vagy mindkét kifejezés Null, akkor az eredmény is Null. Ha mindkét kifejezés üres értéket tartalmaz, az eredmény egész szám. Ha csak egy van, akkor eredményként a módosítatlan második kifejezés kerül visszaadásra.
Példák:
Homályos Saját Szám, Var1, Var2
Saját Szám = 2 + 2" vissza fog térni
4.
Saját Szám = 4257,04 + 98112" vissza fog térni
102369.04.
var1="34"
Var2 = 6 "Inicializálja a vegyes változókat
Saját Szám = Var1 + Var2" vissza fog térni
40.
var1="34"
Var2="6" " Inicializálja a változókat karakterláncokkal
Saját Szám = Var1 + Var2" vissza fog térni"346" (megtörtént
"összefűzés, nem összeadás!").
Tanács:
Az összeadás (+) operátor használható dátumok hozzáadására, pl. Dátum típusú változók:
Dim d Dátumként
d = Sorozat dátuma(2002, 8, 15) " inicializálás dátuma 2002.08.15
d=d+15 " most d a 2002.08.30. dátumot tartalmazza
"Azaz hozzáadtunk 15 napot
operátor - (kivonás, előjelváltás)
Két szám közötti különbség megállapítására vagy egy kifejezés előjelének megváltoztatására szolgál.
Szintaxis:
eredmény = kifejezés1- kifejezés2
-kifejezés
Lehetőségek:
eredmény- kötelező; bármely numerikus változó
kifejezés- Feltétlenül; bármilyen kifejezést
kifejezés1- Feltétlenül; bármilyen kifejezést
kifejezés2- Feltétlenül; bármilyen kifejezést
Megjegyzések:
Az első szintaxisban a "-" operátor szükséges a két szám közötti különbség megtalálásához. A második szintaxisban a "-" az y előjelének megváltoztatására szolgál kifejezéseket.
Az eredmény adattípusa általában megegyezik a két szám legpontosabb típusával. A pontosság sorrendje: Byte, Integer, Long, Single, Double, Currency és Decimális. Vannak kivételek:
- Ha a kivonás az Single és Long típusokat tartalmazza, akkor az eredmény Dupla
- Ha a kivonás Date típusú kifejezést használ,
akkor az eredmény a Dátum. - Két dátum kivonása duplát eredményez.
Ha az egyik vagy mindkét kifejezés Null, akkor az eredmény is Null. Ha az egyik kifejezés üres, akkor azt 0-ként értelmezi.
Az összeadás és a kivonás pontossági sorrendje eltér a szorzásnál használttól.
Példák:
Homályos Saját Eredmény
Saját eredmény = 4-2" vissza fog térni
2.
Saját Eredmény = 459,35 - 334,90" vissza fog térni
124.45.
Tanács:
Az összeadás operátorhoz hasonlóan a kivonási operátor is használható két dátum közötti különbség (napokban) kiszámítására:
Dim d1 Dátumként
Dim d2 As Date
Dim más, amíg
d1 = Sorozat dátuma(1983, 10, 14)
d2 = Sorozat dátuma(2002, 8, 15)
razn = d2 - d1 " különbség napokban (6880).
Összehasonlító operátorok
Néhány kifejezés összehasonlítására szolgál. 3 szintaxisuk van:
Szintaxis:
eredmény = kifejezés1 összehasonlító operátor kifejezés2
eredmény = tárgy1 Is tárgy2
eredmény = vonal Mint minta
Lehetőségek:
eredmény kívánt; bármely numerikus változó
kifejezés Szükségszerűen; bármilyen kifejezést
összehasonlító operátor kívánt; bármely összehasonlító operátor
egy tárgy kívánt; bármely objektum neve
vonal kívánt; bármilyen karakterlánc kifejezést.
minta kívánt; bármilyen karakterlánc kifejezés vagy betűk és számok tartománya
Megjegyzések:
A következő táblázat tartalmazza az összehasonlító operátorok listáját és azokat a feltételeket, amelyek alapján a kifejezés eredménye meghatározható (igaz vagy hamis).
Operátor |
igaz ha |
Hamis, ha |
Null ha |
< (меньше чем) | kifejezés1 < kifejezés2 |
kifejezés1 >= kifejezés2 |
egy |
<= (меньше или равно) | kifejezés1 <= kifejezés2 |
kifejezés1 > kifejezés2 |
|
> (nagyobb mint) | kifejezés1 > kifejezés2 |
kifejezés1 <= kifejezés2 |
|
>= (nagyobb vagy egyenlő) | kifejezés1 >= kifejezés2 |
kifejezés1 < kifejezés2 |
|
= (egyenlő) | kifejezés1 = kifejezés2 |
kifejezés1 <> kifejezés2 |
|
<>(nem egyenlő) | kifejezés1 <> kifejezés2 |
kifejezés1 = kifejezés2 |
Az Is és Like operátorok meghatározott funkciókat hajtanak végre, és összehasonlító táblázatuk eltér a bemutatotttól (az alábbiakban ezeket nézzük meg).
Amikor két kifejezést hasonlítanak össze, nem mindig lehet meghatározni, hogy az összehasonlítás számok vagy karakterláncok lesznek. Az alábbiakban bemutatjuk, hogy a rendszer hogyan számítja ki az eredményt, ha mindkét kifejezés más típusú, mint a Variant:
- Ha mindkét kifejezés szám (byte, logikai, egész, hosszú, egyszeri, dupla, dátum, pénznem vagy tizedes), akkor a számok összehasonlítása történik.
- Ha mindkét kifejezés karakterlánc, akkor karakterlánc-összehasonlítás történik. (a kisebb karakterlánc az, amelynek első és azt követő betűje kisebb ASCII-kóddal rendelkezik).
- Ha az egyik kifejezés egy szám, a másik pedig egy Változat, amely számként értelmezhető, akkor a számok összehasonlításra kerülnek.
- Ha az egyik kifejezés egy szám, a másik pedig egy Variant karakterlánc, amely nem értelmezhető számként, akkor hiba történik (Típushiba).
- Ha az egyik kifejezés egy karakterlánc, a másik pedig egy tetszőleges Variant érték (akár nulla), akkor karakterlánc-összehasonlítás történik.
- Ha az egyik kifejezés üres, a másik pedig egy szám, akkor a számok összehasonlítása történik, ahol az Üres értéket 0-ként kezeljük.
- Ha az egyik kifejezés Üres, a másik pedig egy karakterlánc, akkor egy karakterlánc-összehasonlítás történik, ahol az Ürest a "" üres karakterláncként kell kezelni.
Ha az első és a második kifejezés is Variant típusú, akkor a kifejezések összehasonlítása a Változatban található adattípusok szerint történik:
- Ha mindkét Variant kifejezés tartalmaz számokat, akkor a számok összehasonlításra kerülnek.
- Ha mindkét Variant kifejezés tartalmaz karakterláncokat, akkor a karakterláncok összehasonlításra kerülnek.
- Ha az egyik Variant kifejezés egy számot, a másik pedig egy karakterláncot tartalmaz, akkor a numerikus kifejezés kisebb, mint a karakterlánc kifejezés.
- Ha az egyik Variant kifejezés üres, a másik pedig egy szám, akkor az Üres értéket 0-ként kezeli.
- Ha az egyik Variant kifejezés Üres, a másik pedig egy karakterlánc, akkor az Üres karakterlánc üres "" karakterláncként lesz kezelve.
- Ha mindkét kifejezés üres, akkor egyenlőként kezeljük őket.
Amikor egy Single változót hasonlítanak össze egy Double-vel, a Double-t a Single pontosságára kerekítik.
Ha a valutát egy vagy dupla pénznemhez hasonlítja, akkor az egyszeri vagy kettős pénznemre konvertálódik. Hasonlóképpen, ha a tizedesjegyet egy vagy duplával hasonlítja össze, akkor az egyszeres vagy dupla tizedesjegyekké alakul át. Pénznem esetén a 0,0001-nél kisebb töredékek elveszhetnek. Decimális esetén ez az érték 1E-28, különben hiba léphet fel. Így a törtrész elvesztésével a kifejezések egyenlőnek értelmezhetők, bár valójában egyik a másiktól eltérő lesz. (bár kicsi).
Példák:
Homályos MyResult, Var1, Var2
Saját Eredmény = (45< 35) "
vissza fog térni Hamis.
Saját Eredmény = (45 = 45)" vissza fog térni igaz.
Saját Eredmény = (4<> 3) "
vissza fog térni igaz.
MyResult = ("5" > "4")" vissza fog térni igaz.
Var1="5": Var2=4 " VB-ben használhat kettőspontot,
" külön operátorokhoz.
Saját Eredmény = (Var1 > Var2)" vissza fog térni igaz.
Var1=5: Var2= Üres
Saját Eredmény = (Var1 > Var2)" vissza fog térni igaz.
Var1 = 0: Var2 = Üres
MyResult = (Var1 = Var2)" vissza fog térni igaz.
összehasonlító operátor Is
Ez az operátor az objektumváltozók összehasonlítására szolgál.
Ennek az operátornak a szintaxisa fent található.
Megjegyzések:
Ha az objektum1 és az objektum1 ugyanarra az objektumra hivatkoznak, akkor az eredmény igaz, ha nem, akkor hamis. Két változó többféleképpen is hivatkozhat ugyanarra az objektumra. A következő példában A ugyanarra az objektumra utal, mint B:
Állítsd be: A=B
A következő példa azt teszi lehetővé, hogy az A és B változó ugyanarra a C objektumra hivatkozzon:
Állítsd be: A = C
SetB=C
Példák:
Homályos MyObject, YourObject, ThisObject, _
OtherObject, ThatObject, MyCheck
Set YourObject = MyObject " objektumhivatkozások létrehozása
Set ThisObject = MyObject
Állítsa be a ThatObject = OtherObject értéket
MyCheck = YourObject Is ThisObject " True értéket ad vissza.
A MyCheck = ThatObject Is ThisObject " False értéket ad vissza.
"Feltételezzük, hogy a MyObject<>OtherObject
MyCheck = MyObject Is ThatObject " Hamis értéket ad vissza.
karakterlánc-összehasonlító operátor – Tetszik
A Like string összehasonlító operátor a karakterláncok összehasonlítására szolgál.
Ennek az operátornak a szintaxisát fentebb már tárgyaltuk.
Megjegyzés:
Ez az operátor használható egy karakterlánc tesztelésére a minta maszk ellen. Ez egy nagyon erős operátor, majdnem analóg reguláris kifejezések a Perlben.
Tehát ez az operátor a következőképpen működik. Ha a karakterlánc egyezik a maszkkal, akkor az eredmény igaz. Ha nem - hamis. Ha az egyik kifejezés Null, akkor az eredmény is Null.
A Like operátor viselkedése a karakterlánc-összehasonlítás alapértelmezett típusától függ. (Opció Összehasonlítási nyilatkozat).
Ha a Bináris típus be van állítva (azaz bináris összehasonlítás), akkor a karakterláncok Ascii kódjaik alapján kerülnek összehasonlításra (különböző kódolásokban eltérő). Általában a következő sorrendet használják:
A< B < E < Z < a < b < e < z < А < К < Я < а < к < я
Ha a típus beállítása Szöveg (szöveg-összehasonlítás). Egy ilyen összehasonlítással a sorrend eltér az előzőtől, itt a nagy és a kis betűk egyenlőek:
(A=a)< (А=а) < (B=b) < (E=e) < (К=к) < (Z=z) < (Я=я)
A legtöbb fő funkció A Like operátor egy teszt annak megállapítására, hogy egy karakterlánc egy maszkhoz tartozik-e. A maszkban a következő különlegességek használhatók. karakterek:
Bármelyik karakter
* Nulla vagy több karakter
# Bármely számjegy (0-9).
Bármelyik karakter a charlistban
[!charlist] Bármely olyan karakter, amely nem szerepel a charlistban
Íme egy kis megjegyzés. Annak érdekében, hogy ellenőrizze egy karakterlánc tulajdonjogát egy speciálisat tartalmazó maszkon. szimbólumokat (azaz ellenőrizze például, hogy vannak-e [,?,#,],* szimbólumok a karakterláncban), akkor be kell zárnia a következőt: szögletes zárójelek. Nem lehet csak úgy külön zárójelet [ vagy ] tenni.
A karakterlista megadásakor kötőjelet (-) használhat. Például egy A-tól Z-ig terjedő sorozat megadásához maszkot kell használni. A zárójelben lévő szöveg nem tartalmazhat elválasztót (szóköz, vessző stb.), különben ezek is szerepelni fognak a sorrendben.
A maszk érvényesítésének további fontos szabályai is vannak:
- (!) jel a karakterlista elején azt jelzi, hogy olyan karaktereket kell keresni, amelyek nem szerepelnek ebben a listában. Ha meg kell találni magát a jelet!, akkor zárójeleket kell tenni [!].
- A (–) karaktertartomány megadására szolgál.
- Karaktertartomány megadásakor növekvő ASCII-kódoknak kell lenniük. Azok. helyes maszk, de nem.
- A sorozat a "" üres karakterláncként értelmeződik.
Példák:
Homályos MyCheck
MyCheck = "aBBBa" Mint "a*a" " Igazat ad vissza.
MyCheck = "F" Like "" " Igazat ad vissza.
MyCheck = "F" Mint "[!A-Z]" " Hamis értéket ad vissza.
MyCheck = "a2a" Mint "a#a" " Igazat ad vissza.
MyCheck = "aM5b" Mint az "a#[!c-e]" " Igaz értéket ad vissza.
MyCheck = "BAT123khg" Mint "B?T*" " Igazat ad vissza.
MyCheck = "CAT123khg" Mint "B?T*" " Hamis értéket ad vissza.
myString = "312T-87GD-8922"
Ha myString Mint a "###-##-####", majd...
Karakterlánc-összefűzési operátorok
Valójában mindössze 2 operátort használhat karakterláncok összekapcsolására a Visual Basicben. Ez & és +. A + operátort fentebb leírtuk. Beszéljünk a & operátorról.
karakterlánc-összefűzési operátor - &
Két kifejezés összefűzésére szolgál.
Szintaxis:
eredmény = kifejezés1 & kifejezés2
eredmény kívánt; Bármely karakterlánc vagy variáns változó
kifejezés1 Szükségszerűen; Bármilyen kifejezés
kifejezés2 Szükségszerűen; Bármilyen kifejezés
Megjegyzések:
Ha a kifejezés nem karakterlánc, akkor karakterlánc-változattá alakítja. Az eredmény adattípusa csak akkor String, ha mindkét kifejezés String típusú. Ellenkező esetben az eredmény String Variant. Ha mindkét kifejezés nulla, akkor az eredmény is Null. Ha azonban csak az egyik kifejezés tartalmazza null érték, akkor az üres "" karakterláncként értelmeződik. Az üres karakterlánc üres ""-ként is értelmezhető.
Példák:
Homályos MyStr
MyStr = "Hello" és "World"
"
vissza fog térni karakterlánc "Hello World".
MyStr = "Check" & 123 & "Check"
" A "Verify 123 Verify" karakterláncot adja vissza.
Logikai operátorok
Ez az operátorok legérdekesebb csoportja. Programozáskor ismernie kell a munkájukat és az alkalmazásukat (és nem csak a Visual Basicben).
Ebből 6 van a Visual Basicben. Vizsgáljuk meg részletesen az egyes operátorokat.
És operátor
Két kifejezés logikai szorzására szolgál.
Szintaxis:
eredmény = kifejezés1És kifejezés2
eredmény
kifejezés1 Szükségszerűen; Bármilyen kifejezés
kifejezés2 Szükségszerűen; Bármilyen kifejezés
Megjegyzések:
A következő táblázat az And operátor működését mutatja be:
Ha kifejezés1 = |
, és kifejezés2 = |
Az eredmény = |
Igaz | Igaz | Igaz |
Igaz | Hamis | Hamis |
Igaz | Nulla | Nulla |
Hamis | Igaz | Hamis |
Hamis | Hamis | Hamis |
Hamis | Nulla | Hamis |
Nulla | Igaz | Nulla |
Nulla | Hamis | Hamis |
Nulla | Nulla | Nulla |
Az And operátort egy szám bitjeinek tesztelésére is használják. Biteknél az And operátor így működik (nézz balról jobbra)
0 0 0
0 1 0
1 0 0
1 1 1
Példák:
Homályos A, B, C, D, MyCheck
MyCheck=A>B és B>C" vissza fog térni igaz.
MyCheck=B>A és B>C" vissza fog térni Hamis.
MyCheck=A>B és B>D" vissza fog térni Nulla.
MyCheck = A és B" vissza fog térni8 (bit összehasonlítás).
Nézzük meg közelebbről az utolsó példát. A 10-es szám bitekben a következőképpen van ábrázolva (tetradként, azaz 4 biten):
A 8-as szám pedig így néz ki:
Az And operátor működésének eredményeként a fenti táblázat szerint a következőket kapjuk:
Azok. 8. Miért tettük ezt? Ezt azért tettük, hogy ellenőrizzük, hogy az A szám negyedik bitje be van-e állítva? Miután megkaptuk a B-t, megbizonyosodtunk arról, hogy ez a bit be van állítva.
Vagy operátor
Két kifejezés logikai összeadására szolgál.
Szintaxis:
eredmény = kifejezés1 Vagy kifejezés2
eredmény kívánt; Bármely numerikus (beleértve a logikai) változót
kifejezés1 Szükségszerűen; Bármilyen kifejezés
kifejezés2 Szükségszerűen; Bármilyen kifejezés
Megjegyzések:
Az alábbi táblázat az Or operátor működését mutatja be:
Ha kifejezés1 = |
, és kifejezés2 = |
Az eredmény = |
Igaz | Igaz | Igaz |
Igaz | Hamis | Igaz |
Igaz | Nulla | Igaz |
Hamis | Igaz | Igaz |
Hamis | Hamis | Hamis |
Hamis | Nulla | Nulla |
Nulla | Igaz | Igaz |
Nulla | Hamis | Nulla |
Nulla | Nulla | Nulla |
Az Or operátor egy szám bizonyos bitjeinek beállítására szolgál. Biteknél az Or operátor a következőképpen működik (nézzen balról jobbra)
0 0 0
0 1 1
1 0 1
1 1 1
Az eredmény kiemelve kiemelten.
Példák:
Homályos A, B, C, D, MyCheck
MyCheck=A>B vagy B>C" vissza fog térni igaz.
MyCheck=B>A vagy B>C" vissza fog térni igaz.
MyCheck=A>B vagy B>D" vissza fog térni igaz.
MyCheck=B>D vagy B>A" vissza fog térni Nulla.
MyCheck = A vagy 5" vissza fog térni
15:
Nézzük meg közelebbről az utolsó példát. A 10-es szám bitekben a következőképpen van ábrázolva (tetradként, azaz 4 biten):
És az 5-ös szám:
Az Or operátor működése eredményeként a fenti táblázat szerint a következőt kapjuk:
Azok. 15. Amint látja, az Or operátor nagyon könnyen és kényelmesen használható nemcsak összehasonlító kifejezésekben, hanem egy szám bizonyos bitjeinek beállítására is.
Xor operátor
Két kifejezés logikai tagadásának végrehajtására szolgál.
Szintaxis:
eredmény = kifejezés1 Xor kifejezés2
eredmény kívánt; Bármely numerikus (beleértve a logikai) változót
kifejezés1 Szükségszerűen; Bármilyen kifejezés
kifejezés2 Szükségszerűen; Bármilyen kifejezés
Megjegyzések:
Az alábbi táblázat az Xor operátor működését mutatja be:
Az Xor operátor egy szám bizonyos bitjeinek invertálására szolgál. Biteknél az Xor operátor így működik (nézz balról jobbra)
0 0 0
0 1 1
1 0 1
1 1 0
Az eredmény félkövéren van szedve. Az Xor csak abban különbözik az Or-tól, hogy ha mindkét bit 1, az Xor 0-t ad. Az Xor operátor érdekessége, hogy kétszer alkalmazva ugyanazt a számot állítja elő. Ezt gyakran használják a kriptográfiában.
Példák:
Homályos A, B, C, D, MyCheck
A=10: B=8: C=6: D=Null
MyCheck=A>B Xor B>C" vissza fog térni Hamis.
MyCheck=B>A Xor B>C" vissza fog térni igaz.
MyCheck=B>A Xor C>B" vissza fog térni Hamis.
MyCheck=B>D Xvagy A>B" vissza fog térni Nulla.
MyCheck=A Xor B" vissza fog térni
2
Érdekes példa Az Xor operátor használata két numerikus változó értékének cseréjére szolgál:
Dim a Amíg , b Ameddig
a = 4
b = 7
a = a Xor b
b = a Xor b
a = a Xor b
Most az a változó tartalmazza a b változó értékét, és fordítva.
nem operátor
Két kifejezés logikai megfordítására szolgál.
Szintaxis:
eredmény= Nem kifejezés
eredmény kívánt; Bármely numerikus (beleértve a logikai) változót
kifejezés Szükségszerűen; Bármilyen kifejezés
Megjegyzések:
Az alábbi táblázat a Not operátor működését mutatja be:
A Not operátor minden bitet invertál. kifejezéseket. Biteknél a Not operátor így működik (balról jobbra nézve):
0 1
1 0
Az eredmény félkövéren van szedve.
Példák:
Homályos A, B, C, D, MyCheck
A=10: B=8: C=6: D=Null
MyCheck = Nem(A>B)" vissza fog térni Hamis.
MyCheck = Nem (B>A)" vissza fog térni igaz.
MyCheck = Nem(C>D)" vissza fog térni Nulla.
MyCheck = nem A" vissza fog térni-11 (minden bit fordított)
Nézzük meg közelebbről az utolsó példát. A 10-es szám a következőképpen jelenik meg bitként (byteként, azaz 8 bitként):
Az összes bit invertálása után a következőket kapjuk:
Ez pedig -11.
Eqv operátor
Két kifejezés közötti logikai ekvivalencia végrehajtására szolgál.
Szintaxis:
eredmény = kifejezés1 Equv kifejezés2
eredmény kívánt; Bármely numerikus (beleértve a logikai) változót
kifejezés1 Szükségszerűen; Bármilyen kifejezés
kifejezés2 Szükségszerűen; Bármilyen kifejezés
Megjegyzések:
Az alábbi táblázat az Eqv operátor működését mutatja be:
Biteknél az Eqv operátor a következőképpen működik (nézzen balról jobbra)
0 0 1
0 1 0
1 0 0
1 1 1
Példák:
Homályos A, B, C, D, MyCheck
A=10: B=8: C=6: D=Null
MyCheck=A>B Eqv B>C" vissza fog térni igaz.
MyCheck=B>A egyenlet B>C" vissza fog térni Hamis.
MyCheck=A>B Eqv B>D" vissza fog térni Nulla.
MyCheck = A Equv B " vissza fog térni
-3
imp operátor
Két kifejezés logikai következtetésére szolgál.
Szintaxis:
eredmény = kifejezés1 manó kifejezés2
eredmény kívánt; Bármely numerikus (beleértve a logikai) változót
kifejezés1 Szükségszerűen; Bármilyen kifejezés
kifejezés2 Szükségszerűen; Bármilyen kifejezés
Megjegyzések:
Az alábbi táblázat az Imp operátor működését mutatja be:
Ha kifejezés1 = |
, és kifejezés2 = |
Az eredmény = |
Igaz | Igaz | Igaz |
Igaz | Hamis | Hamis |
Igaz | Nulla | Nulla |
Hamis | Igaz | Igaz |
Hamis | Hamis | Igaz |
Hamis | Nulla | Igaz |
Nulla | Igaz | Igaz |
Nulla | Hamis | Nulla |
Nulla | Nulla | Nulla |
Biteknél az Imp operátor így működik (nézz balról jobbra)
0 0 1
0 1 1
1 0 0
1 1 1
Példák:
Homályos A, B, C, D, MyCheck
A=10: B=8: C=6: D=Null
MyCheck=A>B Imp B>C" vissza fog térni igaz.
MyCheck=A>B Imp C>B" vissza fog térni Hamis.
MyCheck=B>A Imp C>B" vissza fog térni igaz.
MyCheck=B>A Imp C>D" vissza fog térni igaz.
MyCheck=C>D Imp B>A" vissza fog térni Nulla.
MyCheck=B Imp A" Visszatér -1