ASCII到字符串的位序列

时间:2015-11-09 21:56:08

标签: java arrays string ascii hamming-code

我正在尝试模拟一个正常工作的汉明码4,7。我正在处理真正位的布尔数组,以便在逻辑上简化它。我输入了一些字符,转换为ASCII并继续模拟。毕竟我最终得到一个长度为numberofcharacters * 8的BooleanArray,其中每个[]等于一位。这个方法应该只是将它重新转换回ascii代码,并且它可以半工作。如果ASCII数是偶数,那么一切都很好,但是当它最后一点奇怪时它总是“忘记”。谢谢你的帮助

亲爱的西蒙

private static String booleantoString(boolean[] bool){ 
    int[] array = new int[bool.length/8];
    for(int a=0;a<bool.length/8;a++){
        for(int n = a*8; n<(a*8+7); n++){   
            if(bool[n] == true){
                array[a] = setBit(array[a],0);
            }
            array[a] <<= 1;
            }

        System.out.print("ASCII-Code: " + array[a]+ " ");
        System.out.print("Zeichen: " +(char)array[a] + " ");
    }
    return s;   
 }

1 个答案:

答案 0 :(得分:0)

我没有彻底地走过它,但我认为由于整数除法向下舍入,这是一个错误。循环条件bool.length/8特别错误。如果bool.length0-7,则bool.length/80。同样,对于来自bool.length的任何8-15bool.length/8为1.因此,任何不完整的字节都会被忽略。也许可以尝试将其更改为(bool.length/8)+1