作为一种面向工程使用的编程言语,Labview供给了十分丰富的时刻操作函数。8.X后又提出了新的有关时刻的数据类型,时刻标识(TIMESTAMP)。时刻标识前期一般翻译成“时刻戳”,实际上是一种改进型的数值控件,从时刻标识控件地点的控件选板就能够初步判断出,时刻标识便是特别的数值控件。
一、时刻标识的内存映射
要想真实了解一种数据类型,首要的问题是要搞清楚该数据类型在内存中或许文件中是怎么存储的。咱们知道数值型控件能够挑选控件所包括的数据类型,比方双精度浮点数、整型数、32位整型数、16位整型数等等。
时刻标识控件是不允许挑选它所包括的数据类型的,这说明时刻标识所包括的数据类型是固定的。从帮助文件中,咱们能够找到时刻标识在内存中的存储方法–映射。
LabVIEW将时刻标识保存为一个含四个整数的簇,其间前两个带符号整数(64位二进制)表明自1904年1月1日周五清晨[01-01-190400:00:00]以来无时区影响的一切秒数。后两个不带符号整数(64位二进制)表明小数秒部分。
LabVIEW使用16个字节(128位)表明时刻信息,其间前8个字节(64位)由两个I32构成,表明从0时刻开端经历过的秒数。后边8个字节为U64数据,表明秒的小数部分。
二、时刻标识与双精度数之间的彼此转化
在时刻标识呈现曾经,经常用双精度数表明从0时刻经历过的秒数。咱们知道双精度数所占的内存空间也是8个字节,与时刻标识相同。可是时刻标识实际上是定点数,它的小数点方位是确认的,因而实际上双精度数表明时刻与时刻标识比较,不如时刻标识准确。
选用数值转化函数就能够完成时刻标识和双精度数之间的彼此转化,如下图所示:
三、强制转化时刻标识至数值
已然咱们现已知道了时刻标识在内存中的存储方法,咱们天然就能够经过强制转化函数分解出时刻标识的两个组成部分,秒和秒的小数部分。
由于时刻标识占有8个字节的内存空间,并分红前后各4个字节,因而能够创立一个簇或许数组来表明它,下面的比如创立一个簇,包括3个元素。前两个元素表明秒的整数部分,第3个元素表明秒的小数部分。
从上图能够看出,秒的整数部分十分显着。小数部分就不简单分辩出来了,这要十分了解浮点数的二进制表明方法才能够。