2

我想创建一个有效的函数来增加 android 中的 8 位二进制字符串。知道吗?我已经创建了这个,但是函数很慢......更好的东西吗?

for(int b1=0;b1<256;b1++){

        String bin1 = Integer.toBinaryString(b1);

        long inb = Long.parseLong(bin1);

        String binfinal = String.format("%08d",inb);

                    text1.setText(binfinal);

                    String str1 =  binfinal.replace("1", "a");
            String str2 =  str1.replace("0", "_");

                    text2.setText(str2); 

}

结果:00000000 00000001 00000010 ........

4

1 回答 1

2

如果您正在寻找效率,它不会比这更快......

for(int i = 0; i < 256; i++){

            /* Print out the first 8 bits */
            /* For 16 bits, put this as the first line of the loop:
               for(int j = 32768; j > 0; j >>= 1)
            */
            for(int j=128; j > 0; j >>= 1){

                if((j & i) != 0)
                    System.out.print('1');
                else
                    System.out.print('0');

            }
            System.out.print(' ');
}

这将产生类似的输出,如果满足您的要求,则不是正面的。这需要 i 的值并将其转换为字符串。由于 i 被循环递增,因此它与递增二进制字符串的结果相同。

编辑:这是一个字符串

for(int i = 0; i < 256; i++){

            String result = "";

            for(int j=128; j > 0; j >>= 1){

                if((j & i) != 0)
                    result += "1";
                else
                    result += "0";

            }
            // now do whatever you want with the String result
}
于 2013-10-10T16:36:45.340 回答