回 帖 发 新 帖 刷新版面

主题:[讨论]ASCⅡ码转换问题,各位大哥帮帮忙啊~~

因为是新手,所以这个问题即使各位看来很简单,对于我来说也是属于一头雾水以及抓耳挠腮型的,各位看官请耐心。

图片链接如下http://tu.6.cn/pic/show-new/id/7437920  或者下载附件。
如果所示,四种模式分别为大写字母型,小写字母型,混合型,标点型。表下方的al.ll.ml,pl分别表示四种类型的锁定,其他不用考虑。我们要做的就是用VB将输入的字符按表中对应关系按左边对应的“值”进行转换。ok,因为说的不清楚,所以让我来举个例子。
1.输入 AaBbCc  A->al 0 a->ll 0 B->al 1 b->ll 1 C->al 2 c->ll 2,所以用VB将转化而来的字符串为al0 ll0 al1 ll1 al2 ll2(al/ll处于高位 0/1/2处于低位)  
2.如表所示,al对应28 ll对应27 所以再用VB将字符串转化为[color=FF0000]数组[/color]如下:[280 270 281 271 282 272]

具体就是这个样子,请问论坛里的各位大哥们有谁能帮忙指点一下应该怎么做么?即使不写出程序段,给出一些指导性建议也很谢谢的!!!先谢谢大家了。
谢谢谢谢谢谢大家,有什么没说明白的请大家指出来。

回复列表 (共4个回复)

沙发

好像很简单啊,照字母的ASCII值进行转换计算就可以啦。
ASC("A")  的值为65
CHR(65)   的值为A

不过,看你的第二次转换就有点不明白了。例如字母D,和n
D -> al 3  (是不是这样子?)   -> 对应  280+3=283
n -> ll 13                     -> 对应  270+13=283
岂不是混淆了?

板凳

大家好热心啊,没想到这么快就有人回复。谢谢~~
我没说清楚,MOZ大哥有些误解了,抱歉。
1.并不是要把A转换为65或者65转换为A,而是直接将A转换为 al(高位)0(低位),进而转换为28(高位)0(低位)。同理D->al 3 ->28 3   n->ll 13->27 13.
2.MOZ大哥有兴趣的话还可以进行下个步骤,就是将一楼得到的第二步进行下去。按照公式D=H*30+L(H代表高位,L代表低位)把数组中的每个元素转换过来成为一个新的数组,例如:n->27*30+13=823

谢谢大家了,尤其是MOZ大哥,这是我在论坛里的第一张帖子~~~

3 楼

如果说是数据的高低位,应该是x256才对啊,为什么会是30呢?不明白。

我说A和65只是举例罢了,不过你好像听不明白。估计是我的表达能力有问题。

不谢不谢,只是貌似太简单了,估计是没有人会出手的。我是不懂,瞎说的,哈哈。

4 楼

ml和pl有重叠,无唯一结果。

我来回复

您尚未登录,请登录后再回复。点此登录或注册