原创 ASCII与字符的相互转换

2011-6-14 17:55 3958 8 8 分类: 测试测量
 
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。
 
 
ASCII与字符串相互转换的第三个方法是利用平化字符串的方法,平化字符串是非常重要的概念,其中涉及到了LV内部数据类型与内存的映射关系,使用该函数是有点大才小用了。

 

文章评论0条评论)

登录后参与讨论
我要评论
0
8
关闭 站长推荐上一条 /2 下一条