0

私はJavaAndroidアプリをWindowsMetroに移動しています。このアプリは、BLOBとデコードを多用しています(BLOBは、DB上のスペースを少なくするようにコーディングされています)

デコードコード全体をコピーした後、結果はわずかに異なります。

私が理解しているように、バイト値が0未満かどうかを尋ねる部分がいくつかありますが、c#のバイトは常に符号なしであるため、結果がAndroidアプリと同じでない理由がわかりません。

これがスニペットです。

         for (int i = 0; i < length; i++) {
                s[six] = (byte) (blob[i] ^ pronpassword[ix]); //pronpass is a string password

            if (s[six] == 0) {
                s[six + 1] = (byte)'-';
                s[six] ^= 128;
                s[six] = (byte) PRON_MAP[(byte) s[six]];
                six++;
            } else {
                s[six] = (byte) PRON_MAP[(byte) s[six]];
            }
            six++;
            ix++;
            if (ix == plen)
                ix = 0;
        }

ありがとう!

4

1 に答える 1

1

Javaでは、byte署名されています。Javaには、実際には符号なしバイトのようなものはありません。これはC#と同等なsbyteので、移植先のタイプです。

于 2012-09-26T01:45:18.363 に答える