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该怎么写。
...全文
32 11 打赏 收藏 举报
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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
可我直接放进去后提示类型不匹配的错误;-(
  • 打赏
  • 举报
回复
相关推荐
发帖
Java SE
加入

6.2w+

社区成员

Java 2 Standard Edition
社区管理员
  • Java SE
申请成为版主
帖子事件
创建了帖子
2003-01-23 11:08
社区公告
暂无公告