【发布时间】:2014-03-19 08:02:17
【问题描述】:
我开发这个程序只是为了好玩,并且有实现随机背景颜色转换器的想法。进行研究并通过我的知识,我设法遇到了一个 1 行代码,它可以按照我的要求进行操作。但我无法理解完整的代码。谁能给我解释一下,我将非常感激...代码如下。
new Color((int) (Math.random() * 0x1000000))
我相信这段代码正在做的是创建 java 已经创建的方法 color 的新实例,将其转换为整数并从中获取随机数并将其乘以 0x1000000。这是正确的,请纠正我。
我发现很难理解为什么它的时间为 0x10000000,最终会回到 0。谢谢,非常感谢您的帮助。谢谢。
【问题讨论】:
-
0x1000000 = 16777216(1600万色),例如davidnaylor.org/blog/2005/02/all-16777216-rgb-colours -
什么意思,0x1000000 表示 1600 万种颜色,不会 0*1000000 = 0。您能否确认我是否也正确解释了 math.random,谢谢。
-
是前缀0x。它不是算术表达式,意思是“乘”,它是“十六进制”的缩写