【已解决】如何创建26进制
本帖最后由 jianganew 于 2011-2-1 16:52 编辑我要创建用26个字母组成的序列:
A~Z,AA~ZZ,AAA~ZZZ,AAAA~ZZZZ……
我是新手,不知如何写代码,请高手们指点。多谢了!
提前祝论坛里的兄弟姐妹们新年快乐,万事如意! 本帖最后由 netegg 于 2011-2-1 09:53 编辑
字母顺序考虑不考虑?
还有是只算加减,乘除等高级运算算不算,小数算不算?
还有26进制算不到z,01234 56789 abcde fghij klmno p
转换通式参见http://www.imefan.com/dzrm/dzrm_99.html 谢谢netegg的答复。
我想要的就是用字母来表示序列,要考虑顺序。
如:X后面是Y,Z,AA,AB……,AY后面是AZ,BA,BB……,ZX后面是ZY,ZZ,AAA,AAB……,BGX后面是BGY,BGZ,BHA,BHB……
最重要的是,我知道一个序列值后,能自动找出下一个正确序列值。
不考虑计算。
是因为有种老机器只能显示8个字符,其它5个字符有特别定义,我只能用3个字符来表示流水号。用字母排列做流水号,能表示26*26*26个,远大于数字表示。
请各位高手帮忙,谢谢! 本帖最后由 netegg 于 2011-2-1 12:53 编辑
那容易呀
For $i = 65 To 90
ConsoleWrite(Chr($i) & @CRLF)
For $j = 65 To 90
ConsoleWrite(Chr($i) & Chr($j) & @CRLF)
For $k = 65 To 90
ConsoleWrite(Chr($i) & Chr($j) & Chr($k) & @CRLF)
Next
Next
Next
顺序输出:
#include <Array.au3>
Local $w = 0, $string
For $i = 65 To 90
$string &= StringRight(StringFormat("%%010s = %010s", Chr($i)), 3) & '/'
For $j = 65 To 90
$string &= StringRight(StringFormat("%%010s = %010s", Chr($i) & Chr($j)), 3) & '/'
For $k = 65 To 90
$string &= StringRight(StringFormat("%%010s = %010s", Chr($i) & Chr($j) & Chr($k)), 3) & '/'
Next
Next
Next
$a = StringSplit($string, '/', 2)
_ArraySort($a)
_ArrayDisplay($a, " ") 请参考http://www.autoitx.com/forum.php?mod=viewthread&tid=4775&highlight=%C8%AB%C5%C5%C1%D0 用netegg的代码已排出序列。
谢谢netegg和pcbar两位高人的帮助。
祝大家新春快乐! 本帖最后由 netegg 于 2011-2-1 18:51 编辑
回复 6# jianganew #include <Array.au3>
Local $w = 0, $string
For $i = 65 To 90
$string &= StringFormat("%03s", Chr($i)) & '/'
For $j = 65 To 90
$string &= StringFormat("%03s", Chr($i) & Chr($j)) & '/'
For $k = 65 To 90
$string &= StringFormat("%03s", Chr($i) & Chr($j) & Chr($k)) & '/'
Next
Next
Next
$a = StringSplit($string, '/', 2)
_ArraySort($a)
_ArrayDelete($a, 0)
_ArrayDisplay($a, " ")
没仔细想,照着例子改的,这样更好些
页:
[1]