我试图将RGB转换为像Java一样的ColorInt。
Java:下面的代码返回’-16777216’表示黑色。
int a = 255;int r = 0;int g = 0;int b = 0;
int hcol = 0;hcol | =(a& 0xFF)& …
你最有可能在64位机器上运行,所以很快 Int 类型实际上是64位,而java int 总是32位。你看到的那个“更高的数字”( 4278190080 ) 实际上是 0x00000000FF000000 在64位整数。 运用 Int32 应该产生你的预期结果。
Int
int
4278190080
0x00000000FF000000
Int32
let a : Int32 = 255 let r : Int32 = 0; let g : Int32 = 0; let b : Int32 = 0; var colInt : Int32 = 0; colInt |= (a & 0xFF) << 24; colInt |= (r & 0xFF) << 16; colInt |= (g & 0xFF) << 8; colInt |= (b & 0xFF); print("\(colInt)"); //-16777216