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

  • SByte, bajt — przyjmować 256 wartości integralną

  • 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.

= &lt; &gt;, &lt;&gt;,, &lt; =, a &gt; = 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)

Option Strict — Instrukcja

Koncepcje

Operatory i wyrażenia w Visual Basic

Operatory arytmetyczne w Visual Basic

Operatory porównania w Visual Basic

Inne zasoby

Operatory (Visual Basic)