揭密加法21亿的项链是怎么来的
相关资讯: | |
好久没有上大话了,不是忙于工作,是忙于睡觉。
清明节刚好加班,开溜去做任务,乖乖,那任务BT得,我只好回来继续做无聊的工作。
总以为日子就能样苦闷、平淡如水般过掠过,没想到网易也沉得无聊了,60W+血的蝴蝶,然后是21亿法的项链。
我一直是不惮以最BT的恶意来惴测网易的,没想到网易比我惴测的更恐怖。
如果这条项链是真的话,那么网易年薪24W招的游戏开发人员的水平也不过而而。
我仔细看了一下这条项链,加的法是2,147,483,647,对于学过编程的我来说,非常熟悉的一个数字。
2147483647=1024×1024×1024×2-1也就是我们经常说的2G字节。
不知道大家还记不记得很久一前一个255级的老头仙?
两件事情产生的根源都是在于游戏中数据类型的定义。
游戏中的数据大部分为整数,整数相对于浮点小数来说,要少占用一部分存储空间,要提高一部分运算速度,网易是非常小气的,服务器卡成那样了,还不添……,所以这方面也尽量利用一切可以利用的资源(一个优秀的程序员也该这样,可是前提是你得确保你所定义的数据不会出错,网易没有想到)
可以定义为整数类型的是以几种类型:
byte integer long currency decimal……
byte型数据存储占有1个字节,最大支持数据为255
integer型数据存储占两个字节,数据范围为(-32768至32767)(有的语言可能是(0-65537))
long型数据占4个字节,数据范围为(-2,147,483,648 到 2,147,483,647)
currency占8个字节,数据范围为 -922,337,203,685,477.5808 到 922,337,203,685,477.5807(这个类型的一般用于会计)。
游戏中一般等级不会超过200多吧,所以等级就定义为byte型 ,最高255,假设大话有255级,升到它是多少经验呢?
期待中……
期待中……
期待中……
是负经验。255级老头仙玩家就是杀人多了以后被捉天牢然后扣经验掉级的。因为最低级是0级,那么再掉下去的时候,不会是负一级,而是255级。因为二进制中-1的代码是11111111,而二进制中255的代码也是11111111。(可以用Windows自带的计算器算一下的)就像你当前时间是凌晨一点,而你把时针倒拔了三个,那么现在是负2时,也就是10时。
游戏之外这样的事情也出现过,有一个事情和闹得沸沸扬扬的许庭事件差不多,也是在ATM上取钱时,ATM出错。本来卡中没有钱了,只是想看一下汇到钱没有,结果余额变成了21亿多。
比如说你的卡上现在只有2元钱了,刚好银行扣年费,你的卡就会变成-8元,但是由于数据的问题卡上的钱会变成2,147,483,639元。
最后,来给大家发个老的视频,关于当事的255级大仙的。(请阅读下一页)