Java 中的 Java 字节数组等效项

标签 java c arrays byte

我有一个使用字节数组的Java函数,C没有这种数据类型,我如何用C编写该函数。

我不太擅长 C,这对我来说有点困惑,我有字节 hash1 和字节 hash2。

它给了我java中int的距离,为什么我需要Java中Char的字节。我知道问题标题看起来重复,但是没有明确的解释。

Java 代码:

public static int distance(byte[] hash1, byte[] hash2) {
    int distance = 0;
    for (int i = 0; i < hash1.length && i < hash2.length; i++)
    {
        distance += ((hash2[i] & 0xFF) - (hash1[i] & 0xFF))*((hash2[i] & 0xFF) - (hash1[i] & 0xFF));
    }
    return distance;
}

最佳答案

在 C 中,您需要 unsigned char。您还需要将每个数组的长度作为单独的参数传递。

public static int distance(unsigned char hash1[], unsigned char hash2[], int len1, len2) {
    int distance = 0;
    for (int i = 0; i < len1 && i < len2; i++)
    {
        distance += ((hash2[i] & 0xFF) - (hash1[i] & 0xFF))*
                    ((hash2[i] & 0xFF) - (hash1[i] & 0xFF));
    }
    return distance;
}

关于Java 中的 Java 字节数组等效项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53403552/

相关文章:

python - 我应该使用什么方法从 URL 中提取关键字?

java - H2数据库: Get rows from subquery as array

c - 为什么这两个程序在 ANSI C 中表现不同?

c++ - 类 Erlang 线程替代或 erl_nif 性能

javascript - 从数组中采样随机子集

javascript - 尝试使用 javascript 创建二维数组时,类型错误 : matrix[y]. Push 不是函数

java - Hibernate 生成的 SQL 对 MS SQL 无效

java - jaxb 和 jax-ws 中的循环引用

java - "JAVA parameter index out of range (1 > number of parameters, which is 0)"的准备语句参数错误

java - 在布局之间添加阴影