我在变量中有以下十六进制值存储:
0x04a8f5
我想将值转换为:
0xff04a8f5
我怎样才能做到这一点? 我试图通过以下操作来做到这一点:
int result = 0x04a8f5 >> 8;
答案 0 :(得分:1)
使用以下示例作为指导。
val = 0x04a8f5; //Your value
val |= 0xFF000000; //OR 0xFF000000 with your value, and assign the new value to val
注意,这不是位移位,因为如果原始值是32位(或更大)的整数,那么可用的高位字节可以存储FF
值。换句话说,您的原始变量实际上是0x0004a8f5
。使用|=
赋值将OR FF
包含您想要更改的字节。没有必要转移。
此外,将0x0004a8f5
移位8位会产生0x000004a8
。
答案 1 :(得分:1)
因为你想在你的号码前面加上FF(1111 1111),所以这根本不是一点点的转变。您只需在颜色值中添加常量。
只要您的颜色值永远不会超过6个十六进制数字来表示,您就可以这样做:
color |= 0xFF000000