Re: [闲聊] 什么时候可以出个最大伤害记录

楼主: yallowsam21 (米浆 Porrige)   2017-11-07 00:22:32
来,让敝人在下小弟不才我来简单说明一下
为什么排行榜的最大伤害不是实际的最大伤害。
大家只要打开排行榜想看看最大伤害
会发现开外挂(?)或是真的超高伤害的那些
(像是这次溢补关卡)
数字都是2147483647,对吧?
另外排行榜里的最大连击数也只会是255
这是为什么呢?
简单说,就是进制的问题罢了。
各位应该都知道电脑或手机的程式都是使用二进制编码的
而神魔是采用32bit的计数方式
也就是说,之前在打最大连击数那个成就
大家应该会发现打出去的伤害
就是只有214748364
(因为最后一位的7被显示的位数吃掉了)
但是某次大更新后,就正式把游戏中的数值提升了
(因为怪的血量越来越夸张......)
不过排行榜却还没改到
也就造成排行榜的最大伤害还是只有2147483647了
这数字跟二进制和32bit有个很大的关系
因为2147483647=2^31-1
写成二进制的数字就会是1111111111111111111111111111111(31个1)
简单解释的话
32bit就是有32个位元
对于我们常用的十进制来说
每个位数的最大值就是9
到10就会进位
同理,二进制的每个位元最大值就是1
逢2进位
那既然32bit有32个数字
为什么最大值却是31个1而已呢?
因为二进制不像我们能在数字前方
加上+或-来表示正负
而是同样以1或0来表示正负
所以会缺一个位元来表示正负值
至于排行榜中的最大连击数也是类似的道理
最大值会是255=2^8-1
代表工程师们只给它8位元
因为连击数不像伤害会有负值
(像是伤害吸收之类的盾)
所以就是写满8个1囉
但是为什么2^x还要再减1?
这就是数学的部份了
因为数字的计数是从0开始
也就是说第一个数是0
第二个数是1,以此类推
才会造成最后需要补个减1
来留给伤害为0或是康波为0的状态
文组说明:
盘子最多只能放三颗榴莲
你的实际上有五颗榴莲
不过端出来给客人最多只能放三颗
这样应该简单多了哈哈
作者: aaa1924a4 (言酥鸡)   2017-11-07 00:27:00
快推以免被认为看不懂
作者: alternate (plan B)   2017-11-07 00:30:00
有没有文组版本的说明
作者: IceLemontea (cmwang)   2017-11-07 00:30:00
为什么要减1,因为数字从零开始啊…
作者: meredith001 (ああああ ̄▽ ̄)   2017-11-07 00:31:00
没有最经典的32767 失败
作者: StevenZ (Arc)   2017-11-07 00:32:00
C8763
作者: bluelamb (蓝羊)   2017-11-07 00:33:00
说好的65535呢
作者: suhaw (阿邪)   2017-11-07 00:44:00
32767~-32768
作者: phoenix286 (团子大家族)   2017-11-07 00:45:00
把位数都拿去存正数 就不用多花一位计正负了吧
作者: blueocean292 (蓝海)   2017-11-07 00:47:00
原来是数学之塔啊 我还以为这里是神魔之塔勒
作者: Forthelife (我認為暱稱一定要全填滿)   2017-11-07 00:48:00
60229
作者: StevenZ (Arc)   2017-11-07 01:02:00
32767~-32768 是天堂的正义值范围啦~~~ XD
作者: wayan0607 (badman)   2017-11-07 01:16:00
推文组说明
作者: ringal (皓呆)   2017-11-07 01:24:00
天堂经典正义值:32767 邪恶值:-32768 神魔没有跟天堂致敬!
作者: Ukanomitama (宇迦ノ御魂神)   2017-11-07 01:26:00
先推
作者: jacky1227890 (biggerblackman)   2017-11-07 01:28:00
干文组说明反而看不懂
作者: qqppzzmm (里予木各火乍弓单)   2017-11-07 01:46:00
有文组版 赞
作者: gino9955 (臨江)   2017-11-07 01:59:00
文组版看的雾煞煞
作者: gygycowbei (积y)   2017-11-07 02:40:00
妈的之前写加减器被助教刁这个
作者: kerlakerla (喀啦喀啦)   2017-11-07 06:50:00
不懂为什么少1才看完的 结果没讲
作者: jacky3838 (yo)   2017-11-07 07:27:00
我是理组我骄傲
作者: sorochis (ㄇㄚˇ ㄨㄟˇ ㄎㄨㄥˋ)   2017-11-07 07:39:00
为什么少1不是有讲了吗?任何数字序列都从0开始啊十进制的三位数上限不是一千,是999,一样的道理话说这是国小的数学了吧
作者: WenKaiSu (kai)   2017-11-07 07:50:00
第一千个数字是999而不是1000 因为是从零开始数
作者: pcyu16 (._.?)   2017-11-07 08:21:00
文组解释
作者: pippen2002 ((EJ1547))   2017-11-07 09:13:00
好像看过2147483648 ?
作者: udm   2017-11-07 09:30:00
第一次搞懂给推。
作者: meredith001 (ああああ ̄▽ ̄)   2017-11-07 09:35:00
2147483648就枫币上限阿
作者: peter0627 (biscuit)   2017-11-07 09:41:00
认真问神魔为什过了这么久还是用int 不是long long
作者: a0429 (Miller)   2017-11-07 09:43:00
有天堂给推 XD
作者: lulu1016 (露露)   2017-11-07 10:21:00
这理组根本就常识 文组又看不懂 根本一篇废文
作者: teddybear221 (拉哥)   2017-11-07 11:09:00
原本4计概神 推一个
作者: kerlakerla (喀啦喀啦)   2017-11-07 11:14:00
我问的是2^n-1那个-1是为什么
作者: phonya (枫夜)   2017-11-07 11:23:00
2^n在二进位制是n+1位数啊 2^1=(2)10=(10)2 =>2位数所以只能显示n位数的话就要2^n-1 那就是n位数的最大值
作者: phoenix286 (团子大家族)   2017-11-07 11:50:00
因为有0 所以会2^n-1
作者: noproblem226 (好好照顾自己。)   2017-11-07 12:38:00
文组说明意思感觉不太通
作者: ghostunt893 (别啊)   2017-11-07 12:42:00
我也推60229
作者: vector666 (团结)   2017-11-07 14:06:00
文组也看不懂文组版怎么办
作者: c22501656 (SIN)   2017-11-07 15:12:00
60229
作者: gocc (彼之判决)   2017-11-07 15:14:00
60229+1
作者: sorochis (ㄇㄚˇ ㄨㄟˇ ㄎㄨㄥˋ)   2017-11-07 18:45:00
推文完美体现了世界上只有10种人的概念:懂二进制的人跟不懂二进制的人
作者: easypro   2017-11-07 21:37:00
没改成long的原因应该是sql的关系,改下去sql部分工程就大了,因为有纪录部分要同步更新
作者: udm   2017-11-07 21:39:00
话说目前的手机大都还是32 bit,跟这个bug无法改掉有关吗?
作者: kerlakerla (喀啦喀啦)   2017-11-08 00:30:00
懂了 推回来
作者: lkjhgfdsa681 (鱼儿水中游)   2017-11-08 02:57:00
推推 很清楚一看就懂~
作者: a196203325 (台中王羲之)   2017-11-08 08:44:00
连文组版本都看了好几次才懂QAQ
作者: DJY (1080P)   2017-11-08 08:56:00
有没有智X版?

Links booklink

Contact Us: admin [ a t ] ucptt.com