我正在查看Identicons的原始代码。有一段代码对红、绿和蓝色分量进行了一些位操作:
int blue = (code >> 16) & 0x01f;
int green = (code >> 21) & 0x01f;
int red = (code >> 27) & 0x01f;
code变量是一个32位整数。
我的问题是:数字0x01和0x01f之间有什么区别?
我猜测f表示该值为浮点数,但为什么要将其设置为浮点数?是因为二进制中的浮点表示与整数表示不同吗?这不会在移植时引起可移植性问题,如果特定语言不使用相同的表示方法,会造成问题吗?
此外,由于不理解0x01f问题,我可能读错了,但这只是将红色、绿色和蓝色表示设置为0或1,具体取决于最低有效位吗?