LabVIEW NXG - Tipos de dados simples e coerção de tipos

Este é o terceiro artigo da série LabVIEW NXG, no qual analisamos tipos de dados simples e conversões simples entre eles.



O sistema do tipo LabVIEW é muito semelhante às linguagens de programação "clássicas". Neste artigo, consideraremos os tipos básicos - numéricos, booleanos e cadeias (embora formalmente as cadeias não pertençam a tipos escalares simples).


A maneira mais fácil de entender o sistema de tipos é criar uma pequena ferramenta com controles e indicadores de diferentes tipos:



e conecte-os no diagrama assim:



, " In" " Out". LabVIEW, , ( ).


— , 8, 16, 32 64 , ( 4 8 ), — . :



:



( , ). , ? :



"" ( Coercion Dots), , .


SGL DBL , , U8 I32, , DBL->SGL, DBL->I32 I32->U8 , :



"" LabVIEW Coercion Dots , :



, ? , Data Types->Numeric->Conversion:



:



Coercion Dot, .



, , , DBL, :



, , ( LabVIEW Compound Arithmetic):



LabVIEW . , :


double res;
res = 5/3;
Console.WriteLine(res);

"1".


LabVIEW , 1,66 (1,66666666666667 ):



, LabVIEW , , , C# ( "" ).


, , :



, . , , , :



C# ( , int, , :


        static void Main(string[] args)
        {
        byte x_U8 = 200, y_U8 = 200, res_U8;

        res_U8 = x_U8 + y_U8;

            Console.WriteLine(res_U8);
        }

:


        res_U8 = (byte)(x_U8 + y_U8);

, LabVIEW, , LabVIEW , , ( ):



, , :



LabVIEW ( "" ) — .


LabVIEW C# Microsoft, :


class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine(5.0/0.0);
    }
}

"8". , , "", "Infinity", . , .NET Core — , ( , , " " Windows 10 2004). , , , , , , , .


, , LabVIEW:



— . :



, NaN (Not a Number):



NaN Not a Number? :



— .


.


# :


static void Main(string[] args)
{
    Console.WriteLine(5/0);
}

...


static void Main(string[] args)
{
    int zero = 0; 
    Console.WriteLine(5/zero);
}

… System.DivideByZeroException, LabVIEW — , .




() :



Conversions :



:



, , :



:



, , :


    static void Main(string[] args)
    {
    string hello = "Hello, ";
    string habr = "Habr!";

        Console.WriteLine(hello + habr);
    }

LabVIEW " " , :




. , Boolean to Integer :



LabVIEW. False:



, :



Type Cast


"Type Cast", . :



"Type", . "by flattening it and unflattening". "/".


, SGL I32:



output? "1040187392". ?


:



Este é 0x3E000000. Aqui acontece o seguinte - quatro bytes de um número de ponto flutuante são reinterpretados como um número inteiro de quatro bytes. Peguei intencionalmente o número 0,125, porque se você observar a representação de 0,125 de acordo com a IEEE754, verá que existem apenas cinco bits do conjunto mantissa - isso nos dá o valor 3E no byte alto.


Após três artigos, devemos trabalhar com bastante confiança com três tipos de dados:



Se você tiver alguma dúvida sobre o material apresentado, pergunte nos comentários e, no próximo artigo, consideraremos as matrizes.


All Articles