Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 有人能帮我理解这个生成哈夫曼树的方法吗?_Java - Fatal编程技术网

Java 有人能帮我理解这个生成哈夫曼树的方法吗?

Java 有人能帮我理解这个生成哈夫曼树的方法吗?,java,Java,我试图理解这段代码,它是关于生成一个。此代码中此方法的用途是什么?请解释清楚。谢谢 public static Byte toByte(String str) { int io = 0; for (int i = 0; i < str.length(); i++) { io += Math.pow(2, i) * Byte.parseByte(str.charAt(str.length() - i - 1) + ""); } return (

我试图理解这段代码,它是关于生成一个。此代码中此方法的用途是什么?请解释清楚。谢谢

public static Byte toByte(String str) {
    int io = 0;
    for (int i = 0; i < str.length(); i++) {
        io += Math.pow(2, i) * Byte.parseByte(str.charAt(str.length() - i - 1) + "");
    }
    return (byte) io;
}
公共静态字节toByte(String str){
int io=0;
对于(int i=0;i
您应该能够从方法名称、参数类型和返回类型中找出这一点。 i、 e.该方法接受
字符串
,返回
字节
,称为
toByte
。人们可以想象,
字符串
被更改为
字节
,而
字节
被返回

至于它是如何做到这一点的,它迭代字符串的每个字符,并计算出表示该字符的字节(通过
byte.parseByte
),然后将其附加到最后的
io
字节


需要注意的是,java中的字符由16位(即2个字节)组成,并且该方法尝试查看字符串,因此在大多数情况下,您不会得到整个字符串的字节表示形式。

如果您想了解如何生成字符,本教程将对您有所帮助

实际上,您的代码示例正在为给定的
字符串
创建一个
字节


您能否提供更多有关此方法使用位置的上下文信息?

快速查看代码,该方法似乎用于将表示字节的一串位转换为实际的
字节。例如,它将“1101”转换为字节值0x0D

它通过分析字符串中的每个字符来实现这一点,从最低有效字符开始(即:
str.charAt(str.length()-1-i)
),将其转换为一个字节(理论上的值应该是0或1),然后根据其在字符串中的位置将其乘以2的幂(即:
Math.pow(2,i)
),其中最低有效位置的系数为0

它总结了所有的“比特”,并给你一个最终的答案


不是-对字符串中正在解析的各个位似乎没有错误检查,但字符串中应该只表示0和1。

阅读代码并尝试自己解决它怎么样?由于没有使用不寻常的类,而且名称是“正在说话”,所以不应该太难(提示:字符串转换为字节,当然可能会有一些损失)。这是家庭作业吗?如果是的话,请给它贴上合适的标签。我是初学者,你的口音不太好,兄弟。