可能重复:
unsigned short in java
Conversion of Audio Format in 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;
}
由于Java中不支持“unsigned short”而无法运行
有人有什么建议吗?
感谢您的帮助!
答案 0 :(得分:2)
任何人都可以给你的最好建议是阅读Java教程或书籍的介绍。
如错误所述,unsigned short
在Java中不是原语。
答案 1 :(得分:2)
Java没有签名和无符号类型。删除未签名和已使用的签名短裤,其余代码仍应有效。
答案 2 :(得分:1)
char
在语法上等同于Java中的unsigned short
。但是,最好不要将它用于任何公共方法,因为它在语义上不是整数类型。
如果您想使用unsigned short
,我认为int
适合。你可以使用它的最低16位。