gpt4 book ai didi

java - java中如何使用unsigned int/char值

转载 作者:行者123 更新时间:2023-12-01 19:09:04 26 4
gpt4 key购买 nike

我正在尝试用 Java 模仿旧的 C 程序行为。 C代码是:

void calc_crc(unsigned char *datbuff,unsigned int length)
{
static unsigned char tmp;
static unsigned int crc,zaehler;
crc = 0;
for (zaehler = 0;zaehler < length ;zaehler ++)
{
tmp=(unsigned char) (crc>>8) ;
crc=(crc<<8) ^ crctab[tmp] ^ *datbuff;
datbuff++;
}
}

static unsigned short crctab[256] =
{ // Some values
};

第一个问题是此代码使用未签名的代码,而 java 是有签名的。努力保留这些值(value)观。我们在 java 中也能得到相同的结果吗?

最佳答案

最简单的方法是始终至少使用大一号的尺码。即,当 C 使用 char 时,您可以使用 Short 或 int。在这种情况下,需要更多地摆弄这些值以使其受到检查,但这在很大程度上可以通过屏蔽来处理。

更长的答案是,您可以对有符号变量执行相同的操作,但转换所有值。另外,在 java 中的转换要非常小心,一定要使用>>>,否则你会让自己感到困惑。 >> 是有符号右移,>>> 是无符号的。在大多数情况下,如果您确保使用正确的大小变量和正确的移位运算符,您的代码可能会正常工作。

关于java - java中如何使用unsigned int/char值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8914723/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com