Typy danych wyników operatora (Visual Basic)
Visual BasicOkreśla typ danych wynik operacji na podstawie typów danych operandów.W niektórych przypadkach może to być typ danych z szerszego zakresu niż albo operandu.
Zakresy typu danych
Zakresy typów danych odpowiednich w kolejności od najmniejszej do największej, są następujące:
Boolean — dwóch możliwych wartości
Krótki, UShort — 65 536 (6.5... E + 4) możliwe wartości integralną
Integer, UInteger — 4 294 967 296 (4.2... E + 9) możliwe wartości integralną
LONG, ULong — 18,446,744,073,709,551,615 (1,8... E + 19) możliwe wartości integralną
Dziesiętna — 1.5... E + 29 możliwe integralną wartości, maksymalny zakres... 7,9 E + 28 (wartość bezwzględna)
Pojedynczy — zasięg 3.4... E + 38 (wartość bezwzględna)
Podwójna — zasięg 1.7... E + 308 (wartość bezwzględna)
Aby uzyskać więcej informacji na Visual Basic typów danych, zobacz Typ danych — Podsumowanie (Visual Basic).
Jeśli argument ma wartość nic nie, Visual Basic operatory arytmetyczne należy traktować jako zero.
Arytmetyka dziesiętna
Należy zauważyć, że dziesiętne typ danych nie jest ani zmiennoprzecinkowych ani liczby całkowitej.
If either operand of a +, –, *, /, or Mod operation is Decimal and the other is not Single or Double, Visual Basic widens the other operand to Decimal.Wykonuje operację w Decimal, i typu danych wynikowych jest Decimal.
Arytmetykę zmiennopozycyjną
Visual Basicwykonuje większość arytmetykę zmiennopozycyjną w Double, która jest najbardziej efektywne danych typu dla takich operacji.Jednakże jeśli jeden operand jest pojedynczego , a drugi nie jest Double, Visual Basic wykonuje operację w Single.Rozszerza ona każdego operand, niezbędne w celu odpowiedni typ danych przed operacją i wynik ma tego typu danych.
/ i ^ operatorów
/ Operator jest zdefiniowany tylko dla dziesiętne, pojedynczego, i Double typów danych.Visual BasicRozszerza każdego operand, niezbędne w celu odpowiedni typ danych, zanim operacji, a wynik ma tego typu danych.
W poniższej tabeli przedstawiono typy danych dla wyniku / operatora.Należy zauważyć, że w tej tabeli jest symetryczna; dla danej kombinacji typów danych operandu typu danych wynikowych jest taki sam, niezależnie od kolejności operandy.
Decimal |
Single |
Double |
Każdy typ integer |
|
Decimal |
Dziesiętny |
Pojedynczy |
Podwójne |
Dziesiętny |
Single |
Pojedynczy |
Pojedynczy |
Podwójne |
Pojedynczy |
Double |
Podwójne |
Podwójne |
Podwójne |
Podwójne |
Każdy typ integer |
Dziesiętny |
Pojedynczy |
Podwójne |
Podwójne |
^ Operator jest zdefiniowany tylko dla Double typu danych.Visual BasicRozszerza każdego operand jako niezbędne do Double przed operacji i wynik, typ danych jest zawsze Double.
Arytmetyki całkowitej
Typ danych wynik operacji zależy od typów danych operandów.Ogólnie rzecz biorąc Visual Basic używa następujących zasad określania typu danych wynikowych:
Jeśli oba operandy operatora dwuargumentowego mają taki sam typ danych, wynik ma tego typu danych.Wyjątkiem jest Boolean, który jest zmuszony do Short.
Jeśli operand niepodpisane uczestniczy z argumentem podpisane, wynik ma podpisane typu z co najmniej jako duże zakresu jako albo operand.
W przeciwnym razie wynik ma zwykle większej z dwóch typów danych operandu.
Należy zauważyć, że typu danych wynikowych nie może być taki sam, jak typ danych albo operandu.
[!UWAGA]
Typu danych wynikowych nie zawsze jest wystarczająco duży, aby pomieścić wszystkie możliwe wartości wynikające z operacji.OverflowException Wyjątek może wystąpić, jeśli wartość jest za duża dla typu danych wynikowych.
Jednoargumentowy + i – operatorów
W poniższej tabeli przedstawiono wyniki typy danych dla dwóch operatory jednoargumentowe, + i –.
Boolean |
SByte |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
|
Jednoargumentowy+ |
Krótkie |
SByte |
Bajt |
Krótkie |
UShort |
Liczba całkowita |
UInteger |
Długie |
ULong |
Jednoargumentowy– |
Krótkie |
SByte |
Krótkie |
Krótkie |
Liczba całkowita |
Liczba całkowita |
Długie |
Długie |
Dziesiętny |
<< i >> Podmioty gospodarcze
W poniższej tabeli przedstawiono wyniki typów danych na dwa operatory bitowe shift, << i >>.Visual Basictraktuje każdy operator bit shift jako operator unarny na operand po lewej stronie (wzorzec bitowy, tak aby pasowała).
Boolean |
SByte |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
|
<<, >> |
Krótkie |
SByte |
Bajt |
Krótkie |
UShort |
Liczba całkowita |
UInteger |
Długie |
ULong |
Jeżeli lewy operand jest Decimal, Single, Double, lub String, Visual Basic próbę jej konwersji na Long przed operacji i wynik, typ danych jest Long.Prawy operand (numer pozycji bitowego przesunięcia) musi być Integer lub typ, który rozszerza się do Integer.
Binarne +, -, * i operatorów Mod
W poniższej tabeli przedstawiono typy danych dla pliku binarnego wynik + i – podmiotów gospodarczych oraz * i Mod podmiotów gospodarczych.Należy zauważyć, że w tej tabeli jest symetryczna; dla danej kombinacji typów danych operandu typu danych wynikowych jest taki sam, niezależnie od kolejności operandy.
Boolean |
SByte |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
|
Boolean |
Krótkie |
SByte |
Krótkie |
Krótkie |
Liczba całkowita |
Liczba całkowita |
Długie |
Długie |
Dziesiętny |
SByte |
SByte |
SByte |
Krótkie |
Krótkie |
Liczba całkowita |
Liczba całkowita |
Długie |
Długie |
Dziesiętny |
Byte |
Krótkie |
Krótkie |
Bajt |
Krótkie |
UShort |
Liczba całkowita |
UInteger |
Długie |
ULong |
Short |
Krótkie |
Krótkie |
Krótkie |
Krótkie |
Liczba całkowita |
Liczba całkowita |
Długie |
Długie |
Dziesiętny |
UShort |
Liczba całkowita |
Liczba całkowita |
UShort |
Liczba całkowita |
UShort |
Liczba całkowita |
UInteger |
Długie |
ULong |
Integer |
Liczba całkowita |
Liczba całkowita |
Liczba całkowita |
Liczba całkowita |
Liczba całkowita |
Liczba całkowita |
Długie |
Długie |
Dziesiętny |
UInteger |
Długie |
Długie |
UInteger |
Długie |
UInteger |
Długie |
UInteger |
Długie |
ULong |
Long |
Długie |
Długie |
Długie |
Długie |
Długie |
Długie |
Długie |
Długie |
Dziesiętny |
ULong |
Dziesiętny |
Dziesiętny |
ULong |
Dziesiętny |
ULong |
Dziesiętny |
ULong |
Dziesiętny |
ULong |
\ Operator
W poniższej tabeli przedstawiono typy danych dla wyniku \ operatora.Należy zauważyć, że w tej tabeli jest symetryczna; dla danej kombinacji typów danych operandu typu danych wynikowych jest taki sam, niezależnie od kolejności operandy.
Boolean |
SByte |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
|
Boolean |
Krótkie |
SByte |
Krótkie |
Krótkie |
Liczba całkowita |
Liczba całkowita |
Długie |
Długie |
Długie |
SByte |
SByte |
SByte |
Krótkie |
Krótkie |
Liczba całkowita |
Liczba całkowita |
Długie |
Długie |
Długie |
Byte |
Krótkie |
Krótkie |
Bajt |
Krótkie |
UShort |
Liczba całkowita |
UInteger |
Długie |
ULong |
Short |
Krótkie |
Krótkie |
Krótkie |
Krótkie |
Liczba całkowita |
Liczba całkowita |
Długie |
Długie |
Długie |
UShort |
Liczba całkowita |
Liczba całkowita |
UShort |
Liczba całkowita |
UShort |
Liczba całkowita |
UInteger |
Długie |
ULong |
Integer |
Liczba całkowita |
Liczba całkowita |
Liczba całkowita |
Liczba całkowita |
Liczba całkowita |
Liczba całkowita |
Długie |
Długie |
Długie |
UInteger |
Długie |
Długie |
UInteger |
Długie |
UInteger |
Długie |
UInteger |
Długie |
ULong |
Long |
Długie |
Długie |
Długie |
Długie |
Długie |
Długie |
Długie |
Długie |
Długie |
ULong |
Długie |
Długie |
ULong |
Długie |
ULong |
Długie |
ULong |
Długie |
ULong |
Jeśli albo operand \ operator jest dziesiętne, pojedynczy, lub podwójnego, Visual Basic próbę jej konwersji na długi przed operacji i wynik, typ danych jest Long.
Relacyjne i operatory porównania
The result data type of a relational operation (=, <>, <, >, <=, >=) is always BooleanBoolean Data Type (Visual Basic).The same is true for logical operations (And, AndAlso, Not, Or, OrElse, Xor) on Boolean operands.
Typ danych wynik operacji operatory logiczne zależy od typów danych operandów.Należy zauważyć, że AndAlso i OrElse są zdefiniowane tylko dla Boolean, i Visual Basic konwertuje każdy operand jako niezbędne do Boolean przed wykonaniem operacji.
= < >, <>,, < =, a > = operatorów
Jeśli oba operandy są Boolean, Visual Basic uważa True za mniej niż False.Jeśli typ numerycznych jest porównywana z String, Visual Basic próbuje konwertować String do Double przed operacją.A Char lub Date operand można porównać tylko z innym argumentem, tego samego typu danych.Typ danych wynik jest zawsze Boolean.
Bitowe Not operatora
W poniższej tabeli przedstawiono typy danych na poziomie bitowym wynik Not operatora.
Boolean |
SByte |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
|
Not |
Wartość logiczna |
SByte |
Bajt |
Krótkie |
UShort |
Liczba całkowita |
UInteger |
Długie |
ULong |
Jeśli argument jest Decimal, Single, Double, lub String, Visual Basic próbę jej konwersji na Long przed operacji i wynik, typ danych jest Long.
Bitowe I, lub, a operatorzy Xor
W poniższej tabeli przedstawiono typy danych na poziomie bitowym wynik And, Or, i Xor podmiotów gospodarczych.Należy zauważyć, że w tej tabeli jest symetryczna; dla danej kombinacji typów danych operandu typu danych wynikowych jest taki sam, niezależnie od kolejności operandy.
Boolean |
SByte |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
|
Boolean |
Wartość logiczna |
SByte |
Krótkie |
Krótkie |
Liczba całkowita |
Liczba całkowita |
Długie |
Długie |
Długie |
SByte |
SByte |
SByte |
Krótkie |
Krótkie |
Liczba całkowita |
Liczba całkowita |
Długie |
Długie |
Długie |
Byte |
Krótkie |
Krótkie |
Bajt |
Krótkie |
UShort |
Liczba całkowita |
UInteger |
Długie |
ULong |
Short |
Krótkie |
Krótkie |
Krótkie |
Krótkie |
Liczba całkowita |
Liczba całkowita |
Długie |
Długie |
Długie |
UShort |
Liczba całkowita |
Liczba całkowita |
UShort |
Liczba całkowita |
UShort |
Liczba całkowita |
UInteger |
Długie |
ULong |
Integer |
Liczba całkowita |
Liczba całkowita |
Liczba całkowita |
Liczba całkowita |
Liczba całkowita |
Liczba całkowita |
Długie |
Długie |
Długie |
UInteger |
Długie |
Długie |
UInteger |
Długie |
UInteger |
Długie |
UInteger |
Długie |
ULong |
Long |
Długie |
Długie |
Długie |
Długie |
Długie |
Długie |
Długie |
Długie |
Długie |
ULong |
Długie |
Długie |
ULong |
Długie |
ULong |
Długie |
ULong |
Długie |
ULong |
Jeśli argument jest Decimal, Single, Double, lub String, Visual Basic próbę jej konwersji na Long przed operacji i dane typu jest taka sama tak, jakby były już ten operand Long.
Różne podmioty gospodarcze
& Operator jest zdefiniowany tylko dla łączenia z String operandów.Visual BasicKonwertuje każdy operand jako niezbędne do String przed operacji i wynik, typ danych jest zawsze String.Do celów & operatora, wszystkich konwersji do String są uważane za poszerzenia, nawet jeśli Option Strict jest On.
Is i IsNot operatorów wymagają oba operandy się typ odwołania.The TypeOf...Is wyrażenie wymaga pierwszego operandu się typ odwołania i drugi operand nazwa typu danych.We wszystkich tych przypadkach dane wynik jest typu Boolean.
Like Operator jest zdefiniowany tylko dla dopasowania wzorca String operandów.Visual Basicpróbuje przekonwertować każdego operand jako niezbędne do String przed operacją.Typ danych wynik jest zawsze Boolean.
Zobacz też
Informacje
Typ danych — Podsumowanie (Visual Basic)
Kolejność wykonywania działań (Visual Basic)
Operatory według funkcji (Visual Basic)
Operatory arytmetyczne (Visual Basic)
Operatory porównania (Visual Basic)
Koncepcje
Operatory i wyrażenia w Visual Basic
Operatory arytmetyczne w Visual Basic
Operatory porównania w Visual Basic