C --〉JAVA,这段函数如何翻译

abedon 2003-01-23 11:08:19
static long Crc32 (long oldcrc, byte newchar)
{
long Crc = oldcrc;

Crc = ((Crc >> 8) & 0x00ffffffL) ^
crc_table[(Crc ^ newchar) & 0xffL];

return Crc;
}

static long decrypt_byte(long key[])
{
long temp;

temp = key[2] | 2;
return((temp *( temp^1)) >> 8);
}

请问这段C程序翻成JAVA该怎么写。
...全文
49 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
abedon 2003-01-24
  • 打赏
  • 举报
回复
对不起,搞忘说明了:crc_table是一个long型的数组;-)

按 aiur(AIUR) 的方法试试先
iamqqmyheart 2003-01-23
  • 打赏
  • 举报
回复
java都支持,不用转.
noblame 2003-01-23
  • 打赏
  • 举报
回复
你把它们放到类作为类的成员Function就OK了
希偌 2003-01-23
  • 打赏
  • 举报
回复
几乎不用转换
l_clove 2003-01-23
  • 打赏
  • 举报
回复
你要把它放在Class里啊
aiur 2003-01-23
  • 打赏
  • 举报
回复
編譯提示兩個錯誤,一個是crc_table未定義,還有就是long to int會丟失精度
先定義crc_table
static long[] crc_table;
再修改這一句:
crc_table[(Crc ^ newchar) & 0xffL];

crc_table[(int)(Crc^newchar) & 0xffL)];
abedon 2003-01-23
  • 打赏
  • 举报
回复
我就是在修改了类型后得到了楼顶的那段代码,可编译时仍旧报错,请大家给出确切的翻译后的代码。
yeahspyme 2003-01-23
  • 打赏
  • 举报
回复
你修改一下数据类型吧。
unsigned, gchar,在java中都不支持的。
结构应该没有什么问题吧。
abedon 2003-01-23
  • 打赏
  • 举报
回复
up
abedon 2003-01-23
  • 打赏
  • 举报
回复
这段代码我是稍微修改了的,原始的C代码如下:
static unsigned char
decrypt_byte(const unsigned long *key) {
unsigned short temp;

temp = key[2] | 2;
return((temp *( temp^1)) >> 8);
}

static unsigned long
Crc32 (unsigned long oldcrc, gchar newchar)
{
register unsigned long Crc = oldcrc;

Crc = ((Crc >> 8) & 0x00ffffffL) ^
crc_table[(Crc ^ newchar) & 0xffL];

return Crc; /* return a 1's complement */
}
abedon 2003-01-23
  • 打赏
  • 举报
回复
可我直接放进去后提示类型不匹配的错误;-(

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧