-1

重複の可能性:
unsigned short in java Java
でのオーディオ形式の変換

ulaw音楽をpcm形式に変換するコードがあります

コードは C でプログラムされていますが、今は Java で実行する必要があります

コードはこのようなものです

short ALG_ulawDecode(unsigned short input)
{
unsigned short isNegative;

short nOut;

isNegative = ((input & 0x80) == 0);
if (isNegative)
    nOut = 127 - input;
else
    nOut = 255 - input;
if (nOut < 2)
    nOut *= 2;
else if (nOut < 16)
    nOut = ((nOut - 1) << 1) + 1 + 1;
else if (nOut < 32)
    nOut = ((nOut - 16) << 2) + 2 + 31;
else if (nOut < 48)
    nOut = ((nOut - 32) << 3) + 4 + 95;
else if (nOut < 64)
    nOut = ((nOut - 48) << 4) + 8 + 223;
else if (nOut < 80)
    nOut = ((nOut - 64) << 5) + 16 + 479;
else if (nOut < 96)
    nOut = ((nOut - 80) << 6) + 32 + 991;
else if (nOut < 112)
    nOut = ((nOut - 96) << 7) + 64 + 2015;
else
    nOut = ((nOut - 112) << 8) + 128 + 4063;
if (isNegative)
    nOut = -nOut;
nOut <<= 2;
return nOut;
}

『unsigned short』が Java でサポートされていないため、実行できません。

誰かアドバイスはありますか?

手伝ってくれてありがとう!

4

3 に答える 3

2

誰もがあなたに与えることができる最善のアドバイスは、Javaチュートリアルまたは本の紹介を読むことです。

エラーが示すように、unsigned shortはJavaのプリミティブではありません。

于 2013-01-18T02:30:39.957 に答える
2

Javaには符号付き型と符号なし型がありません。署名されていない、使用されている署名されたショートパンツを削除します。残りのコードは引き続き機能します。

于 2013-01-18T02:30:42.650 に答える
1

charは文法的unsigned shortに Java と同等です。ただし、意味的に整数型ではないため、パブリック メソッドには使用しない方がよいでしょう。

を使いたいのであれば、合うunsigned shortと思います。int最下位の 16 ビットだけを使用できます。

于 2013-01-18T02:56:40.263 に答える