24进制 编码实现
来源:互联网 发布:安云加速器for mac 编辑:程序博客网 时间:2024/06/05 08:38
#coding: utf8
ALPHABET = 'abcdefghijkmnpqrstuvwxyz'
ALPH_VALUE={'a':0,'b':1,'c':2,'d':3,'e':4,'f':5,'g':6,'h':7,'i':8,'j':9,'k':10,'m':11,'n':12,'p':13,
'q':14,'r':15,'s':16,'t':17,'u':18,'v':19,'w':20,'x':21,'y':22,'z':23 }
def encode24( number ):
print "in encode24 "
if not isinstance(number, (int, long)):
raise TypeError('number must be an integer')
if number < 0:
raise ValueError('number must be positive')
base24 = ''
while number:
number, i = divmod(number, 24)
base24 = ALPHABET[i] + base24
return base24 or ALPHABET[0]
def decode24( coding24 ):
#return int(coding24, 36)
#decimal = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]
num = 0
length = len(coding24)
for i in range(0, length):
num += ALPH_VALUE.get(coding24[i])* pow(24, length-1-i)
return num
def check(coding24):
check_tab = [13, 11, 7, 3]
num = 0
min_len = min(len(coding24), len(check_tab))
for i in range(0, min_len):
num += ALPH_VALUE.get(coding24[i]) * check_tab[i]
num = num % 24
check_alph = encode24(num)
return check_alph
if __name__ == '__main__':
for i in range(0,96):
coding24 = encode24(i)
number = decode24(coding24)
print "coding24=%s, number=%d, check=%s" % (coding24, number, check(coding24) )
print decoding24("aadz")
0 0
- 24进制 编码实现
- huffman编码实现
- c#实现escape编码
- Huffman编码的实现
- URL编码简单实现
- oracle实现PDU编码
- java实现密码编码
- Quoted-Printable编码实现
- 霍夫曼编码c++实现
- 范式哈夫曼编码实现
- 哈夫曼编码C++实现
- Base64编码java实现
- 自适应编码实现
- xvid 实现编码
- 编码转换轻松实现
- 霍夫曼树编码的实现
- java实现base64编码
- Java 实现MD5编码
- ChangeTabLayout实现过程
- 正则表达式的的模式字符
- c++作业4
- 利用keepalived和haproxy配置mysql的高可用负载均衡
- div(table)自动换行word-break:break-all和word-wrap:break-word的区别
- 24进制 编码实现
- 赛码网-在线编程:股神
- 【数论】[NOIP2007]Hanoi双塔问题
- windows 安装VisualSVN-Server并设置域验证
- mysql判断表中字段或者索引是否存在,如果不存在则创建
- AMESim软件建模
- 本机连接虚拟机中Oracle数据库问题解决
- C++构造函数和析构函数
- NFS 远程实时写入同步