gpt4 book ai didi

Java Color 将 RGB 编码为单个整数?

转载 作者:行者123 更新时间:2023-11-29 07:29:19 26 4
gpt4 key购买 nike

我正在阅读“Java The Complete Reference Ninth Edition”,作者给出了这个用单个整数创建 Color 对象的示例,该整数对 RGB 值进行编码,他说:

The integer is organized with red in bits 16 to 23, green in bits 8 to 15, and blue in bits 0 to 7. Here is an example of this constructor:

int newRed = (0xff000000 | (0xc0 << 16) | (0x00 << 8) | 0x00);
Color darkRed = new Color(newRed);

0xff000000 in hexadecimal is equivalent to 0b11111111000000000000000000000000 in binary

这是一个 32 位整数...我理解按位操作,但我不明白的是:

数字开头的那些有什么用?为什么不从零开始

最佳答案

The Javadocs for Color说明 Java Color 类包含一个 alpha channel 和 RGB——因此以全零开头的颜色将是完全透明的。 0xff000000 表示的颜色是不透明黑色。

在这种情况下,作者当然犯了错误。单参数构造函数忽略高字节。相反,如果他想指定 alpha(或者更简单地说,new Color(0xc0, 0, 0, 0xff)),它应该使用 new Color(0xffc00000, true) >).

关于Java Color 将 RGB 编码为单个整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45226724/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com