gpt4 book ai didi

java - 0x01 和 0x01f 的区别

转载 作者:搜寻专家 更新时间:2023-11-01 04:05:14 26 4
gpt4 key购买 nike

我正在查看 Identicons 的原始源代码。有一些代码可以用来提取红色、绿色和蓝色分量:

int blue = (code >> 16) & 0x01f;
int green = (code >> 21) & 0x01f;
int red = (code >> 27) & 0x01f;

代码变量是一个 32 位整数。

我的问题是:数字 0x01 和 0x01f 之间有什么区别?

我假设 f 表示值是一个 float ,但为什么要把它变成一个 float 呢?二进制的浮点表示与整数表示不同吗?如果特定语言不使用相同的表示形式,那么在移植时是否会因为可移植性原因而导致问题?

此外,由于不理解 0x01f 问题,我可能读错了,但这不只是将红色、绿色和蓝色表示设置为 0 或 1,具体取决于最低有效位吗?

最佳答案

这与花车无关。那是一个位掩码。

0x01f = 0b11111

当你用它&你的号码时,它会清除从右边算起第 5 位左边的所有位。

0x0a2bfb & 0x01f => 0x00001b 是这样的:

0x0a2bfb : 0000 1010 0010 1011 1111 1011
0x01f : 0000 0000 0000 0000 0001 1111 &
----------------------------------------
result : 0000 0000 0000 0000 0001 1011

关于java - 0x01 和 0x01f 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3437310/

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