编码无符号整数

encoding unsigned int

本文关键字:无符号整数 编码      更新时间:2023-10-16

我在java中有以下代码,我需要将其转换为c ++才能对无符号的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的新手。我相信这个论坛上的几位专家都懂这两种语言 - 有人可以帮助我翻译吗?

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

 byte[] dst

unsigned char dst[]

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

实际上Java

中的代码在C++中几乎相同,只是做了一些小的修改:

  • 字节在C++中不是有效类型,等效的是无符号字符
  • 数组参数类型必须按照@MarkWilkins提及的方式重新设计。