编码无符号整数
encoding unsigned int
我在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提及的方式重新设计。
相关文章:
- 如何打印boost多精度128位无符号整数
- C++模板函数,用于比较任何无符号整数和有符号整数
- 在线程中读取无符号整数时,c++ 位是否以原子方式切换?
- Constexpr 可变参数模板,用于对无符号整数进行重新排序
- 为什么 Clang 和 GCC 中两个无符号整数之和的结果类型不同
- 从 std::string 转换为 const 无符号整数
- 迭代器和无符号整数的重载 + 运算符
- C++,概念不适用于无符号整数作为结果类型?
- 在C++中,将无符号整数转换为八进制表示,反之亦然的最佳方法是什么
- 原子式清除无符号整数的最低非零位
- 计算机使用什么方法添加无符号整数
- boost::任何带有结构体和无符号整数
- 添加有符号和无符号整数
- 如何安全地比较两个无符号整数计数器?
- 计算 (64 位无符号整数) * (64 位无符号整数) 的商除以 2^64
- 如何将 32 位无符号整数分配给包含 32 位的位字段
- 如何将以"\0"开头的字符 * 转换为无符号整数?
- *(易失性无符号整数 *) 的含义 0x00 = 0x00;
- 编码无符号整数
- 将二进制编码的十进制(BCD)解码为无符号整数