LV中并没有像常规语言一样提供U8数值和字符的转换函数,即ASCII转换成字符和字符转换成ASCII,这并不意味着LV无此功能,LV提供了多种方式可以实现这种转换。
1、ASII转换成字符
2、字符转换ASCII
今天使用的方法是U8数组(ASCII数组)与字符串相互转换的方法,如果只转换一个,就是字符与ASCII相互转换了,所以字符与ASCII转换是字符串与U8数组转换的特殊情况。
我将陆续介绍几种其它的转换方法。
今天谈及的ASCII和字符的转换函数是非常重要的,因为它涉及的计算机最基本的知识。首先我们需要明确计算机的存储设备,比如内存或者硬盘中,真的存在字符吗?
计算机中的所有数据都是二进制方式的,当然以HEX方式描述更为方便,计算机最基本的存储单位是字节,我们在描述硬盘和内存大小时使用的都是这个单位,一个字节由8个位组成,因此可以表示0-255的数值(0X00-0XFF),我们知道,一个字符也是占用一个字节,那么字节中都是0-255之间的数值,字符在那里那?
这就要深入理解ASCII的定义了,计算机中是用数值来表示字符的,ASCII码表中列出的每个数值对应的字符,所谓ASCII就是每个字符所代表的数值。所以所谓字符实际上是对字节中存在的数值的解释。
我们知道,LV的布尔也占用一个字节,U8 、I8都是占用一个字节,从本质上说都是对字节中的数值进行重新解释,比如0表示FALSE,非0表示TRUE。
LV提供了强制转换函数(CAST),从英文原意看翻译成铸模函数更为合适,今天只讨论一个字节转换的问题。
比如内存中一个字节中,当前的数值是65,我们可以理解成存储的是U8、I8、BOOLEAN、CHAR。
CAST函数需要指定强制转换后的数据类型,类型的值没有关系,关键是数据类型,上图中数值转换成字符和BOOLEAN,字符转换成数值,即字符的ASCII。
文章评论(0条评论)
登录后参与讨论