请问,这句话是什么意思(((1+Math.random())*0x10000)|0).toString(16).substring(1)
帮忙翻译一下,非常感谢,特别是0*10000
请问,这句话是什么意思(((1+Math.random())*0x10000)|0).toString(16).substring(1)
帮忙翻译一下,非常感谢,特别是0*10000
13 回答13k 阅读
7 回答2.2k 阅读
3 回答1.4k 阅读✓ 已解决
6 回答1.4k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
6 回答1.2k 阅读
那是
0x10000
不是0*10000
,是字母x
不是运算符*
。这是十六进制,换成十进制就是 65536。拆解一下:
(1 + Math.random()) * 0x10000
生成一个 1~65536 的随机数,为了后面方便,把这个结果设为x
吧。x | 0
位运算,确切的说是或运算。一个数跟 0 做或运算,等于只保留这个数的整数部分。这个结果设为y
吧。y.toString(16)
转成十六进制。这个结果设为z
吧。z.substring(1)
从左数第一个字符开始截断,保留后面的字符串。