Java C++代码转换

标签 java c++ 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;
    }

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

我的 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);
}

最佳答案

在 Java 中使用位操作需要小心。 Java 没有任何无符号类型,因此您可能需要使用比无符号种类大一号的类型。

关于Java C++代码转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1561808/

相关文章:

java - Mockito 与 JMockit 以及依赖注入(inject)

JavaFX 8 : Unstable interactive TabPane when adding new Tab

java - 无法使用 URL 连接到 Tomcat 服务器

c++ - 我如何估计 std::map 的内存使用情况?

c++ - get_time 未按预期运行

c++ - 对象成员的问题

java - SQL 异常 com.microsoft.sqlserver.jdbc.sqlserverexception : login failed for user '' . Clientconnectionid:073b35b2-0e56-460d-8353-9de2b2d0ecff

c++ - 在 Linux 中我应该使用什么来代替 windows.h?

java - 将 Java 转换为 Symbian C/C++ - 字节和对象数组

iOS 应用程序到 MacOS 错误 : 'transactionReceipt' is unavailable: not available on macCatalyst