瓦良格功能块开发预备知识
数据类型介绍:
为了方便开发,瓦良格功能块包含许多数据类型,数据类型明细如下: INT UINT DINT LINT SINT UDINT USINT ULINT UINT WORD DWORD LWORD REAL LREAL TIME BYTE STRING WSTRING BOOL 下面将逐个介绍各个数据类型的的意义。
1,INT 整型:
数据类型 INT(整数)是编程中常用的一种数据类型,用于表示整数值。INT(整数)类型使用补码(Two's Complement)表示法来表示正负数。具体来说,INT类型的最高位(即最左边的一位)用于表示正负,0 表示正数,1 表示负数。 例如,在32位的INT类型中,第31位(从0开始计数)是符号位。其余的31位用于表示数值的大小。以下是一些关于INT数据类型的其他关键点:
- 范围:INT类型的范围取决于具体的编程语言和系统架构。例如,在许多编程语言中,标准的32位INT类型可以表示从 -2,147,483,648 到 2,147,483,647 之间的整数。
- 存储:INT类型通常占用4个字节(32位)的存储空间
- 用途:INT类型广泛用于需要整数值的场景,如计数、索引、循环控制等。
- 操作:可以对INT类型进行各种数学和逻辑操作,如加减乘除、取模、位运算等。
- 溢出:由于INT类型的范围有限,当计算结果超出其表示范围时会发生溢出,导致结果不正确。因此,在编程时需要注意防止溢出。
2,UINT 无符号整型:
- 范围:UINT类型的范围从0开始,最大值取决于具体的位数。例如,32位的UINT类型可以表示从0到4,294,967,295之间的整数。
- 存储:UINT类型通常占用4个字节(32位)的存储空间,但也有其他变种,如短无符号整型(unsigned short int)和长无符号整型(unsigned long int),它们占用的存储空间可能不同。
- 用途:UINT类型广泛用于需要非负整数值的场景,如计数、内存地址、位掩码等。
- 操作:可以对UINT类型进行各种数学和逻辑操作,如加减乘除、取模、位运算等。
- 溢出:由于UINT类型的范围有限,当计算结果超出其表示范围时会发生溢出,导致结果不正确。因此,在编程时需要注意防止溢出。
3,DINT 双整型:
- 范围:DINT类型的范围从-2,147,483,648到2,147,483,647。
- 存储:DINT类型占用4个字节(32位)的存储空间。
- 符号位:DINT类型使用补码(Two's Complement)表示法,最高位(第31位)用于表示正负,0表示正数,1表示负数。
- 用途:DINT类型广泛用于需要较大整数值的场景,如计数器、定时器、数学运算等。
- 操作:可以对DINT类型进行各种数学和逻辑操作,如加减乘除、取模、位运算等
4,LINT 长整型:
范围:LINT类型的范围从-9,223,372,036,854,775,808到9,223,372,036,854,775,807 存储:LINT类型占用8个字节(64位)的存储空间。 符号位:LINT类型使用补码(Two's Complement)表示法,最高位(第63位)用于表示正负,0表示正数,1表示负数。 用途:LINT类型广泛用于需要非常大整数值的场景,如高精度计数、时间戳、大数据计算等。 操作:可以对LINT类型进行各种数学和逻辑操作,如加减乘除、取模、位运算等。
5,SINT 短整型:
范围:SINT类型的范围从即从-128到127。 存储:SINT类型占用1个字节(8位)的存储空间。 符号位:SINT类型使用补码(Two's Complement)表示法,最高位(第7位)用于表示正负,0表示正数,1表示负数。 用途:SINT类型广泛用于需要较小整数值的场景,如简单计数、状态标志、低级别硬件控制等。 操作:可以对SINT类型进行各种数学和逻辑操作,如加减乘除、取模、位运算等。
6,UDINT
范围:UDINT类型的范围从从0到4,294,967,295。 存储:UDINT类型占用4个字节(32位)的存储空间。 符号位:由于是无符号整数,UDINT类型不使用符号位,所有位都用于表示数值。 用途:UDINT类型广泛用于需要较大正整数值的场景,如计数器、时间戳、内存地址、大数据计算等。 操作:可以对UDINT类型进行各种数学和逻辑操作,如加减乘除、取模、位运算等。
7,USINT
范围:USINT类型的范围从0到255。 存储:USINT类型占用1个字节(8位)的存储空间。 符号位:由于是无符号整数,USINT类型不使用符号位,所有位都用于表示数值。 用途:USINT类型广泛用于需要较小正整数值的场景,如简单计数、状态标志、低级别硬件控制等。 操作:可以对USINT类型进行各种数学和逻辑操作,如加减乘除、取模、位运算
8,ULINT
范围:ULINT类型的范围从0到18,446,744,073,709,551,615。 存储:ULINT类型占用8个字节(64位)的存储空间。 符号位:由于是无符号整数,ULINT类型不使用符号位,所有位都用于表示数值。 用途:ULINT类型广泛用于需要非常大正整数值的场景,如高精度计数、大数据处理、时间戳、内存地址等。 操作:可以对ULINT类型进行各种数学和逻辑操作,如加减乘除、取模、位运算等。
9,WORD
范围:WORD类型的范围是从0到65,535。 存储:WORD类型占用2个字节(16位)的存储空间。 符号位:由于是无符号整数,WORD类型不使用符号位,所有位都用于表示数值。 用途:WORD类型广泛用于需要中等范围正整数值的场景,如硬件寄存器、网络协议、图像处理等。 操作:可以对WORD类型进行各种数学和逻辑操作,如加减乘除、取模、位运算等。
10,DWORD
范围:DWORD 类型的范围是从 0 到 4,294,967,295。 存储:DWORD 类型占用 4 个字节(32 位)的存储空间。 符号位:由于是无符号整数,DWORD 类型不使用符号位,所有位都用于表示数值。 用途:DWORD 类型广泛用于需要较大范围正整数值的场景,如操作系统中的内存地址、文件大小、计时器等。 操作:可以对 DWORD 类型进行各种数学和逻辑操作,如加减乘除、取模、位运算等。
11,LWORD
范围:LWORD类型的范围是从0到18,446,744,073,709,551,615。 存储:LWORD类型占用8个字节(64位)的存储空间。 符号位:由于是无符号整数,LWORD类型不使用符号位,所有位都用于表示数值。 用途:LWORD类型广泛用于需要非常大范围正整数值的场景,如大数据处理、加密算法、科学计算等。 操作:可以对LWORD类型进行各种数学和逻辑操作,如加减乘除、取模、位运算等
12,REAL
范围:REAL 类型的范围非常广泛,可以表示非常小的数(接近于零)到非常大的数。 存储:REAL 类型通常占用 4 个字节(32 位)的存储空间,但具体大小可能因编程语言和实现而异。 精度:REAL 类型可以表示小数部分,因此适用于需要精确表示小数的场景,如科学计算、工程计算等。 用途:REAL 类型广泛用于需要表示非整数值的场景,如物理模拟、金融计算、图形处理等。 操作:可以对 REAL 类型进行各种数学操作,如加减乘除、取模、幂运算等。
13.LREAL
范围:LREAL类型的范围非常广泛,可以表示非常小的数(接近于零)到非常大的数。 存储:LREAL类型占用8个字节(64位)的存储空间。 精度:LREAL类型可以表示小数部分,因此适用于需要高精度表示小数的场景,如科学计算、工程计算等。 用途:LREAL类型广泛用于需要表示非整数值且要求高精度的场景,如物理模拟、金融计算、图形处理等。 操作:可以对LREAL类型进行各种数学操作,如加减乘除、取模、幂运算等。
14,TIME
范围:TIME 类型的值范围从 -838:59:59 到 838:59:59,可以表示超过24小时的时间间隔。 存储:TIME 类型占用 3 个字节的存储空间,如果包含小数秒部分,则根据小数秒精度的位数需要额外的字节。 精度:TIME 类型可以包含小数秒部分,精度最高可达微秒(6位小数)。 用途:TIME 类型广泛用于需要表示一天中的具体时间或时间间隔的场景,如数据库中的时间戳、事件调度等。 操作:可以对 TIME 类型进行各种时间操作,如加减时间、比较时间、提取小时、分钟、秒等。
15,BYTE
范围:BYTE 类型的值范围是 0 到 255。它表示一个 8 位的无符号整数。 存储:BYTE 类型占用 1 个字节(8 位)的存储空间。 用途:BYTE 类型广泛用于需要存储小整数值的场景,如标志位、颜色值(如 RGB 颜色的每个分量)、字符编码等。 操作:可以对 BYTE 类型进行各种整数操作,如加减乘除、位运算、比较等。
16,STRING
STRING 数据类型的一些关键点: 范围:STRING 类型可以包含任意长度的字符序列,具体长度限制取决于编程语言或数据库系统的实现。 存储:STRING 类型的存储空间取决于字符串的长度和编码方式(如 ASCII、UTF-8 等)。 用途:STRING 类型广泛用于存储和处理文本数据,如姓名、地址、描述性文本等。 操作:可以对 STRING 类型进行各种操作,如连接、截取、查找、替换、比较等。
17,WSTRING
范围:WSTRING 类型可以包含任意长度的宽字符序列,具体长度限制取决于编程语言或数据库系统的实现。 存储:WSTRING 类型的存储空间取决于字符串的长度和编码方式(如 UTF-16、UTF-32 等)。每个宽字符通常占用 2 或 4 个字节。 用途:WSTRING 类型广泛用于存储和处理多字节字符集的文本数据,如国际化应用中的多语言支持。 操作:可以对 WSTRING 类型进行各种操作,如连接、截取、查找、替换、比较
18,WSTRING
范围:WSTRING 类型可以包含任意长度的宽字符序列,具体长度限制取决于编程语言或数据库系统的实现。 存储:WSTRING 类型的存储空间取决于字符串的长度和编码方式(如 UTF-16、UTF-32 等)。每个宽字符通常占用 2 或 4 个字节。 用途:WSTRING 类型广泛用于存储和处理多字节字符集的文本数据,如国际化应用中的多语言支持。 操作:可以对 WSTRING 类型进行各种操作,如连接、截取、查找、替换、比较等。
19,BOOL
范围:BOOL 类型只有两个可能的值:true(真)和 false(假)。 存储:BOOL 类型通常占用 1 个字节的存储空间,但具体实现可能因编程语言和系统而异 用途:BOOL 类型广泛用于条件判断和逻辑运算,如控制程序流程、标志状态等。 操作:可以对 BOOL 类型进行逻辑操作,如与(AND)、或(OR)、非(NOT)等
ANY: 可以是任何数据类型,包括基础类型和复合类型。
ANY_NUM: 可以是任何数值类型,包括:
SINT,INT,DINT,LINT,USINT,UINT,UDINT,ULINT,REAL,LREAL
ANY_INT: 可以是任何整数类型,包括:
BYTE,WORD,DWORD,LWORD,SINT,INT,DINT,LINT,USINT,UINT,UDINT,ULINT
ANY_REAL: 可以是任何实数类型,包括:REAL,LREAL
ANY_BIT: 可以是任何位类型,包括:
BOOL,BYTE,WORD,DWORD,LWORD
ANY_STRING: 可以是任何字符串类型,包括:STRING,WSTRING
ANY_DATE: 可以是任何日期和时间类型,包括:
DATE,TIME
ANY_ELEMENTARY: 可以是任何基本类型,包括:
BOOL,BYTE,WORD,DWORD,LWORD,SINT,INT,DINT,LINT,USINT,UINT,UDINT,ULINT,REAL,LREAL,STRING,WSTRING,DATE,TIME,TIME_OF_DAY,DATE_AND_TIME
ANY_MAGNITUDE: 可以是任何带符号或无符号的数值类型,包括:
SINT,INT,DINT,LINT,USINT,UINT,UDINT,ULINT,REAL,LREAL
ANY_UNSIGNED: 可以是任何无符号整数类型,包括:
BYTE,WORD,DWORD,LWORD,USINT,UINT,UDINT,ULINT