Java 如何移位颜色中的位(十六进制值)
我在变量中存储了以下十六进制值:Java 如何移位颜色中的位(十六进制值),java,bit-shift,Java,Bit Shift,我在变量中存储了以下十六进制值: 0x04a8f5 我想将该值转换为: 0xff04a8f5 我怎样才能做到这一点? 我已尝试通过以下操作执行此操作: int result = 0x04a8f5 >> 8; 使用以下示例作为指导 val = 0x04a8f5; //Your value val |= 0xFF000000; //OR 0xFF000000 with your value, and assign the new value to val 注意,这不是位移位,因为
0x04a8f5
我想将该值转换为:
0xff04a8f5
我怎样才能做到这一点?
我已尝试通过以下操作执行此操作:
int result = 0x04a8f5 >> 8;
使用以下示例作为指导
val = 0x04a8f5; //Your value
val |= 0xFF000000; //OR 0xFF000000 with your value, and assign the new value to val
注意,这不是位移位,因为如果原始值是32位(或更大)的整数,那么已经有一个更高阶的字节可以存储FF
值。换句话说,原始变量实际上是0x0004a8f5
。使用|=
赋值将或FF
与要更改的字节一起使用。不需要换档
此外,将
0x0004a8f5
移位8位将导致0x00004A8
因为您想将FF(1111111)前置到数字的前面,这实际上根本不是位移位。您只是将一个常量添加到颜色值中
只要颜色值永远不会超过6个十六进制数字,就可以执行以下操作:
color |=0xFF000000
位移位不起作用的原因是你不需要移位任何位。噢,我没想到。良好的学习经验。