免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1943 | 回复: 2
打印 上一主题 下一主题

从AID规律引出一种不错的数字进制思路 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-12-15 21:28 |只看该作者 |倒序浏览
好久没有来CU了,大约是从BLOG兴起罢。总是接受不了过于新鲜的东西,呵呵,或者真的老了。
看到现在论坛再次热闹起来,回来继续潜水,并带点小礼物给大家。
或者有曾经研究过Alexa的朋友,本人曾应邀研究AID的规律,想来已经是4年前的事情了。
现将AID的规律跟CU的XDJM们介绍一下,关键是引出一种不错的数字进制思路:64进制计数

AID共计14位

计位:012345                67        89        ab                cd
采样:l58f31                iL        QO        a1                RB

[1]0-5位为64位时间戳记
[0]6-7位为 IP_CLASS_B 64位值演变
[1]8-9位为 IP_CLASS_C 64位值演变
[1]a-b位为 IP_CLASS_D 64位值


用6位数就可以表示时间戳记,无论是对检索还是记录,都是一个好消息,但Alexa是怎样做到的呢?那就是64位计数法。
以下是PHP写的十进制转64进制的FUNC:
function make_bit64($bit10) {
        //将十进制的数值转换为64进制的数值
        $bit64=array("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","+","/");

        for($i=0;$bit10/pow(64,$i)>=1;$i++) {
                $str.=$bit64[$bit10%pow(64,($i+1))/pow(64,$i)];
        }

        $bit64d=substr($str,0,($i-1)).$bit64[$bit10/pow(64,($i-1))];

        return $bit64d;
}

为什么是64而不是50或者别的,当然是因为可以通过位运算直接通过2进制转换,甚至在代码中省去了十进制这一中间态。

正在思考这一思路在优化代码效率方面有没有价值,欢迎大家拍砖。
satand@126.com

[ 本帖最后由 SATAND 于 2006-12-15 21:31 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2006-12-18 13:55 |只看该作者
比较感兴趣的部分是,映射表是怎么得出来的,因为:
看到64自然想到base64,但base64的映射表是:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/

[ 本帖最后由 crazysoul 于 2006-12-18 14:21 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2007-01-29 10:28 |只看该作者
数字+大、小写字母,是首要的选择,至于余下的2位为什么是“+/”,为什么会是这种排序,我使用它们是因为alexa采纳了这种排序,而alexa采纳它们是因为特立独行,或者说本不想让大家了解其中的规律。
说到“+”&“/”,当然,在C语言里“|”不失为一个好的标记,甚至比“/”还要好用,但我们怎么有理由武断地认为alexa就是选择了C语言呢,况且,BASE64给我们提供了好的规范。
呵呵,恰当的环境中,它们恰恰被选中了,没有必要深究。

[ 本帖最后由 SATAND 于 2007-1-29 10:50 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP