Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Jazyk Visual Basic určuje datový typ výsledku operace na základě datových typů operandů. V některých případech to může být datový typ s větším rozsahem než jeden operand.
Rozsahy datových typů
Rozsahy relevantních datových typů, v pořadí od nejmenšího po největší, jsou následující:
Logická hodnota – dvě možné hodnoty
Krátký, UShort — 65 536 (6,5...E+4) možné celočíselné hodnoty
Celé číslo, UInteger — 4,294,967,296 (4,2...E+9) možné celočíselné hodnoty
Long, ULong – 18 446 744 073 709 551 615 (1,8...E+19) možné integrální hodnoty
Desetinné číslo – 1,5...E+29 možné celočíselné hodnoty, maximální rozsah 7,9...E+28 (absolutní hodnota)
Jednoduchý – maximální rozsah 3,4...E+38 (absolutní hodnota)
Double — maximální rozsah 1,7...E+308 (absolutní hodnota)
Další informace o datových typech jazyka Visual Basic naleznete v tématu Datové typy.
Pokud se operand vyhodnotí jako Nothing, aritmetické operátory jazyka Visual Basic ji považují za nula.
Desetinná aritmetika
Všimněte si, že datový typ Decimal není číslo s plovoucí desetinnou čárkou ani celé číslo.
Pokud je operand +, , –, /*nebo Mod operace Decimal a druhý není Single nebo Double, Jazyk Visual Basic rozšiřuje druhý operand na Decimal. Provádí operaci v Decimala výsledek datového typu je Decimal.
Floating-Point Aritmetika
Jazyk Visual Basic provádí většinu aritmetik s plovoucí deseti desetinou čárkou v double, což je nejúčinnější datový typ pro takové operace. Nicméně, pokud jeden operand je Single a druhý není Double, Visual Basic provede operaci v Single. Rozšiřuje každý operand podle potřeby na příslušný datový typ před operací a výsledek má tento datový typ.
/ a ^ – operátory
Operátor / je definován pouze pro datové typy Decimal, Single a Double . Jazyk Visual Basic rozšiřuje každý operand podle potřeby na příslušný datový typ před operací a výsledek má tento datový typ.
V následující tabulce jsou uvedeny datové typy výsledků operátoru / . Všimněte si, že tato tabulka je symetrická; pro danou kombinaci datových typů operandu je výsledný datový typ stejný bez ohledu na pořadí operandů.
Decimal |
Single |
Double |
Libovolný typ celého čísla | |
|---|---|---|---|---|
Decimal |
Desetinné číslo | Jediný | Dvojitý | Desetinné číslo |
Single |
Jediný | Jediný | Dvojitý | Jediný |
Double |
Dvojitý | Dvojitý | Dvojitý | Dvojitý |
| Libovolný typ celého čísla | Desetinné číslo | Jediný | Dvojitý | Dvojitý |
Operátor ^ je definován pouze pro Double datový typ. Jazyk Visual Basic rozšiřuje každý operand podle potřeby na Double před operací a datový typ výsledku je vždy Double.
Celočíselná aritmetika
Datový typ výsledku celočíselné operace závisí na datových typech operandů. Obecně platí, že Jazyk Visual Basic používá k určení datového typu výsledku následující zásady:
Pokud oba operandy binárního operátoru mají stejný datový typ, výsledek má tento datový typ. Výjimka je
Boolean, která je nucenaShort.Pokud se nepodepsaný operand účastní se znaménkem operandu, má výsledek typ se znaménkem s alespoň tak velkým rozsahem jako jeden operand.
V opačném případě má výsledek obvykle větší ze dvou datových typů operandu.
Všimněte si, že datový typ výsledku nemusí být stejný jako datový typ operandu.
Poznámka:
Datový typ výsledku není vždy dostatečně velký, aby mohl obsahovat všechny možné hodnoty vyplývající z operace. K výjimce OverflowException může dojít, pokud je hodnota pro datový typ výsledku příliš velká.
Unární + a – Operátory
Následující tabulka uvádí datové typy výsledků pro dva unární operátory + a –.
Boolean |
SByte |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
|
|---|---|---|---|---|---|---|---|---|---|
Unární + |
Krátké | SByte | byte | Krátké | UShort | Integer | Celé číslo UInteger | Dlouhý | ULong |
Unární – |
Krátké | SByte | Krátké | Krátké | Integer | Integer | Dlouhý | Dlouhý | Desetinné číslo |
<< a >> operátory
Následující tabulka uvádí datové typy výsledků pro dva operátory << bitové směny a >>. Visual Basic zachází s každým operátorem posunu bitu jako s unárním operátorem v levém operandu (bitový vzor, který se má posunout).
Boolean |
SByte |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
|
|---|---|---|---|---|---|---|---|---|---|
<<, >> |
Krátké | SByte | byte | Krátké | UShort | Integer | Celé číslo UInteger | Dlouhý | ULong |
Pokud je Decimallevý operand , Singlenebo DoubleString, Visual Basic se pokusí jej převést na Long před operací a výsledek datový typ je Long. Pravý operand (počet bitových pozic pro posun) musí být Integer nebo typ, který se rozšiřuje na Integer.
Binární operátory +, –, *a Mod
Následující tabulka ukazuje datové typy výsledků pro binární + a operátory a – operátory a Mod operátory*. Všimněte si, že tato tabulka je symetrická; pro danou kombinaci datových typů operandu je výsledný datový typ stejný bez ohledu na pořadí operandů.
Boolean |
SByte |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
|
|---|---|---|---|---|---|---|---|---|---|
Boolean |
Krátké | SByte | Krátké | Krátké | Integer | Integer | Dlouhý | Dlouhý | Desetinné číslo |
SByte |
SByte | SByte | Krátké | Krátké | Integer | Integer | Dlouhý | Dlouhý | Desetinné číslo |
Byte |
Krátké | Krátké | byte | Krátké | UShort | Integer | Celé číslo UInteger | Dlouhý | ULong |
Short |
Krátké | Krátké | Krátké | Krátké | Integer | Integer | Dlouhý | Dlouhý | Desetinné číslo |
UShort |
Integer | Integer | UShort | Integer | UShort | Integer | Celé číslo UInteger | Dlouhý | ULong |
Integer |
Integer | Integer | Integer | Integer | Integer | Integer | Dlouhý | Dlouhý | Desetinné číslo |
UInteger |
Dlouhý | Dlouhý | Celé číslo UInteger | Dlouhý | Celé číslo UInteger | Dlouhý | Celé číslo UInteger | Dlouhý | ULong |
Long |
Dlouhý | Dlouhý | Dlouhý | Dlouhý | Dlouhý | Dlouhý | Dlouhý | Dlouhý | Desetinné číslo |
ULong |
Desetinné číslo | Desetinné číslo | ULong | Desetinné číslo | ULong | Desetinné číslo | ULong | Desetinné číslo | ULong |
\Operátor
V následující tabulce jsou uvedeny datové typy výsledků operátoru \ . Všimněte si, že tato tabulka je symetrická; pro danou kombinaci datových typů operandu je výsledný datový typ stejný bez ohledu na pořadí operandů.
Boolean |
SByte |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
|
|---|---|---|---|---|---|---|---|---|---|
Boolean |
Krátké | SByte | Krátké | Krátké | Integer | Integer | Dlouhý | Dlouhý | Dlouhý |
SByte |
SByte | SByte | Krátké | Krátké | Integer | Integer | Dlouhý | Dlouhý | Dlouhý |
Byte |
Krátké | Krátké | byte | Krátké | UShort | Integer | Celé číslo UInteger | Dlouhý | ULong |
Short |
Krátké | Krátké | Krátké | Krátké | Integer | Integer | Dlouhý | Dlouhý | Dlouhý |
UShort |
Integer | Integer | UShort | Integer | UShort | Integer | Celé číslo UInteger | Dlouhý | ULong |
Integer |
Integer | Integer | Integer | Integer | Integer | Integer | Dlouhý | Dlouhý | Dlouhý |
UInteger |
Dlouhý | Dlouhý | Celé číslo UInteger | Dlouhý | Celé číslo UInteger | Dlouhý | Celé číslo UInteger | Dlouhý | ULong |
Long |
Dlouhý | Dlouhý | Dlouhý | Dlouhý | Dlouhý | Dlouhý | Dlouhý | Dlouhý | Dlouhý |
ULong |
Dlouhý | Dlouhý | ULong | Dlouhý | ULong | Dlouhý | ULong | Dlouhý | ULong |
Pokud je operand operátoru\ Decimal, Single nebo Double, Visual Basic se pokusí jej převést na Long před operací a výsledek datový typ je Long.
Relační a bitové porovnání
Datový typ výsledku relační operace (=, <>, <>, <=) >=je vždy Booleanlogický datový typ. Totéž platí pro logické operace (And, AndAlso, Not, Or, OrElseXor) na Boolean operandech.
Datový typ výsledku bitové logické operace závisí na datových typech operandů. Všimněte si, že AndAlso a OrElse jsou definovány pouze pro Booleana Visual Basic převede každý operand podle potřeby na Boolean před provedením operace.
=, <>, , <= <>a >= Operátory
Pokud jsou Booleanoba operandy , Visual Basic se domnívá True , že je menší než False. Pokud je číselný typ porovnán s String, Visual Basic se pokusí převést na StringDouble před operací. A Char nebo Date operand lze porovnat pouze s jiným operandem stejného datového typu. Datový typ výsledku je vždy Boolean.
Bitový operátor not
Následující tabulka ukazuje datové typy výsledků pro bitový Not operátor.
Boolean |
SByte |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
|
|---|---|---|---|---|---|---|---|---|---|
Not |
logický | SByte | byte | Krátké | UShort | Integer | Celé číslo UInteger | Dlouhý | ULong |
Pokud je Decimaloperand , , SingleDoublenebo String, Visual Basic pokusí jej převést na Long před operací a výsledek datový typ je Long.
Bitové operátory And, Or a Xor
Následující tabulka uvádí datové typy výsledků pro bitové AndOroperátory a Xor operátory. Všimněte si, že tato tabulka je symetrická; pro danou kombinaci datových typů operandu je výsledný datový typ stejný bez ohledu na pořadí operandů.
Boolean |
SByte |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
|
|---|---|---|---|---|---|---|---|---|---|
Boolean |
logický | SByte | Krátké | Krátké | Integer | Integer | Dlouhý | Dlouhý | Dlouhý |
SByte |
SByte | SByte | Krátké | Krátké | Integer | Integer | Dlouhý | Dlouhý | Dlouhý |
Byte |
Krátké | Krátké | byte | Krátké | UShort | Integer | Celé číslo UInteger | Dlouhý | ULong |
Short |
Krátké | Krátké | Krátké | Krátké | Integer | Integer | Dlouhý | Dlouhý | Dlouhý |
UShort |
Integer | Integer | UShort | Integer | UShort | Integer | Celé číslo UInteger | Dlouhý | ULong |
Integer |
Integer | Integer | Integer | Integer | Integer | Integer | Dlouhý | Dlouhý | Dlouhý |
UInteger |
Dlouhý | Dlouhý | Celé číslo UInteger | Dlouhý | Celé číslo UInteger | Dlouhý | Celé číslo UInteger | Dlouhý | ULong |
Long |
Dlouhý | Dlouhý | Dlouhý | Dlouhý | Dlouhý | Dlouhý | Dlouhý | Dlouhý | Dlouhý |
ULong |
Dlouhý | Dlouhý | ULong | Dlouhý | ULong | Dlouhý | ULong | Dlouhý | ULong |
Pokud je Decimaloperand , , SingleDoublenebo String, Visual Basic se pokusí převést na Long před operací, a výsledný datový typ je stejný jako v případě, že tento operand již byl Long.
Různé operátory
Operátor & je definován pouze pro zřetězení String operandů. Jazyk Visual Basic převede každý operand podle potřeby na String před operací a datový typ výsledku je vždy String. Pro účely operátoru & jsou všechny převody String považovány za rozšiřující, i když Option Strict je On.
Operátory Is a IsNot operátory vyžadují, aby oba operandy byly odkazovým typem. Výraz TypeOf...Is vyžaduje, aby první operand byl odkazovým typem a druhým operandem byl název datového typu. Ve všech těchto případech je Booleandatový typ výsledku .
Operátor Like je definován pouze pro porovnávání vzorů String operandů. Visual Basic se pokusí podle potřeby převést každý operand na String před operací. Datový typ výsledku je vždy Boolean.