Java C++代码转换

Aru*_*tha 1 c++ java porting

我需要将此代码(在C++中)转换为Java代码:

    short i;
    short j;
    short k;
    short result;
    unsigned short  m_table[ 256 ]

    for ( i = 0 ; i < 256 ; i++ )
    {
        k = i << 8;
        result = 0;
        for ( j = 0 ; j < 8 ; j++ )
        {
            if ( ( result^ k ) & 0x8000 )   
                result= ( result<< 1 ) ^ 0x1021;
            else
                result<<= 1;
            k <<= 1;
        }
        m_table[ i ] = (unsigned short) result;
    }
Run Code Online (Sandbox Code Playgroud)

......但我从来没有得到同样的结果......

我的Java代码是:

int i;
int j;
int k;
int result;
int m_table[ 256 ] = new int[256];

for ( i = 0 ; i < 256 ; i++ ) {
    k = (i << 8);

    result = 0;

    for ( j = 0 ; j < 8 ; j++ ) {

        if ( (( result^ k ) & 0x8000) != 0)
            result= (( result<< 1 ) ^ 0x1021);
        else
            result<<= 1;

        k <<= 1;
    }

    m_table[ i ] = (result);
}
Run Code Online (Sandbox Code Playgroud)

Mat*_*ity 5

您需要在Java中小心操作位操作.Java没有任何无符号类型,因此您可能需要使用比使用unsigned变量更大的类型.