符号付き小数点を符号なし小数点に変換しようとしていますが、その方法はわかりません。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'に符号付き10進数に変換しようとしています。つまり、符号付き整数から符号なし整数へ?例を挙げてください。それがなぜ問題になるのかを示してください。 – greenapps
AndroidとIOSの間でどのようにデータを送信するのだろうか。あなたはどちらの方向にも4バイトを送るので、私は整数を考えるでしょう。署名されているか、署名されていないか。 – greenapps
問題のあるIOSからデータを受信する例を挙げてください。 – greenapps