手机APP开发之MIT Appinventor详细实战教程(八)APP实战项目16进制与字符转换之间的设计与思考
一、功能描述
我们先看一个之前的例子,这个APP主要的功能是实现10进制转化为16进制,并将16进制数转化为字符。
它的逻辑设计如下图所示,但是他们并不能实现它所描述的功能。
我们首先分析一下它失败的原因,然后再做一些相应的修改,得做一个更加完善的版本。
二、组件描述
首先是JavaReflector这个组件
这是一个Java反射组件,它可以帮助用户调用本地的方法方法获取方法字段创建方法对象在其中的高级交互功能。
它的第1个功能块(第一行第一个紫色功能块)的作用是获取对象的哈希值,什么是哈希值呢?这里解释一下:哈希算法是将任意长度的二进制映射为固定长度的较小二进制值,这个小的二进制值称为哈希值。
它的作用就是将数据统一化,也常用于信息检测代码和数据完整性的检验。第2个紫色功能块是一个转化数据类型的函数,它可以将输入的参数转化为char型的数据。
下面第1个功能块是将对象以字符串形式输出函数,第2个功能块儿也是将数据转化为char型数据的功能函数。
其他的进制转化转化等细节问题这里不多论述,经过实际检测他的转16进制这块有些问题。
三、错误分析
输入10制数字不能有效地转化成16进制,分析原因可能是这样的。这个组件本身处理数据能力比较弱,所以不能将10进制完全转换为16进制数。
其他方面没有什么问题。经过我的改善,将其逻辑组件改为下面的情情况
我先将10进制数转化为二进制数,然后再将二进制数转化为16进制数,这样就可以实现数字之间的完美转换了。
第2个模块是将数据转化为字符串,经过我的调试,65对应的e,虽然说并不是完全的和阿斯特码对等,但也相差不多。将其完善的功能,我正在改进中。但这个程序已经能够实现,由数据转化为字符串了。
四、总结与启发
尝试使用Java的高级交互模块,可以让数据变得更加准确与规整,也更加的方便与快捷。同时在数字转化的过程中,要考虑到平台内部组建的能力强弱,以及学会灵活地解决遇到的问题。