1

我在 java 中有以下代码,我需要将其转换为 c++ 才能对 unsigned int 进行编码。

public static int enc_uint32be( int i, byte[] dst, int di ) {
        dst[di++] = (byte)((i >> 24) & 0xFF);
        dst[di++] = (byte)((i >> 16) & 0xFF);
        dst[di++] = (byte)((i >> 8) & 0xFF);
        dst[di] = (byte)(i & 0xFF);
        return 4;
}

我是java的新手。我相信这个论坛上的几位专家都懂这两种语言——有人可以帮我翻译吗?

4

2 回答 2

3

这取决于您计划使用的数据类型,但如果您只是更改:

 byte[] dst

unsigned char dst[]

在函数声明中,它的行为应该相同(并且也将函数中的字节用法更改unsigned char为)。

于 2012-05-31T00:00:38.663 回答
1

实际上,Java 中的代码与 C++ 中的代码几乎相同,只是稍作修改:

  • byte 不是 C++ 中的有效类型,等价于 unsigned char
  • 数组参数类型必须像提到的@MarkWilkins 一样重新设计。
于 2012-05-31T00:03:46.833 回答