我試圖將帶符號小數轉換爲無符號小數,但我不知道該怎麼做。Android簽署int爲無符號整數轉換
Android設備正在與另一個iOS設備通信,我們需要從一個平臺向另一個平臺發送顏色代碼。由於這些平臺具有不同的數據類型(Java簽名數據類型和iOS無符號數據類型),因此我們需要進行轉換才能在兩邊都具有相同的顏色。
這是我到目前爲止做出:
// Parse and retrieve color code from the backend server
int unsignedColor = getColorFromBackend();
// Now add an alpha channel 'FF' and make it unsigned color
int signedColor = toSignedColor(unsignedColor);
// The signed value is -14701818
// Now try to make the conversion back, from signed to unsigned
int conversion = toUnsignedColor(signedColor);
// The value is: 129712 which is not the value I want (2075398)
private int toUnsignedColor(int signedColor) {
String hex = Integer.toHexString(signedColor);
hex = hex.substring(2, hex.length() - 1);
// hex = "1FAB06";
int unsignedInt = Integer.parseInt(hex, 16);
return unsignedInt;
}
private int toSignedColor(int unsignedColor) {
String hexColor = String.format("#%06X", (0xFFFFFFFF & unsignedColor));
// hexColor = "#FF1FAB06";
int signedColor = Color.parseColor(hexColor);
return signedColor;
}
// This is an example
private int getColorFromBackend() {
return 2075398;
}
'試圖將一個符號的十進制轉換爲一個無符號decimal'。你的意思是:有符號整數爲無符號整數?請舉個例子。並指出爲什麼會有問題。 – greenapps
我不知道你是如何在Android和IOS之間發送數據的。因爲你會發送四個字節在任何一個方向,我會想一個整數。無論是簽名還是未簽名。 – greenapps
請舉例說明從IOS接收有問題的數據。 – greenapps