二进制卡技巧的Java程序

时间:2013-10-14 10:15:33

标签: java binary-data

我想打印

卡1

从1到63的所有数字,其二进制转换的最后一位数为1。 例如1 = 01,3 = 11,5 = 101,7 = 111 ......等等

卡2

从1到63的所有数字,其二进制转换的最后一位数为1。 例如2 = 10 3 = 11 6 = 110 7 = 111,依此类推 。 。

卡6

从1到63的所有数字,其二进制转换的第一个数字为1 例如:32 = 100000 33 = 100001等等

我尝试了以下逻辑将十进制转换为二进制

    public void printBinaryFormat(int number)
    {
        int binary[] = new int[25];
        int index = 0;
        while(number > 0){
        binary[index++] = number%2;
        number = number/2;
    }
    for(int i = index-1;i >= 0;i--){
        System.out.print(binary[i]);
    }

    public static void main(String a[])
    {
    DecToBin dtb = new DecToBin();
    for(int i=1;i<=63;i++)
    {
    System.out.print(i+"-> ");
    dtb.printBinaryFormat(i);
    System.out.print(" \n");
    }

    }

现在我想对二进制数字给出条件,如

如果(dtb.printBinaryFormat(ⅰ)%100000 == 1)

它显示错误,现在如何将打印的表单转换为int以便我可以检查条件?

2 个答案:

答案 0 :(得分:3)

使用以下代码获取所需结果。

包com.java;

public class BitManipulation {

/**
 * @param args
 */
public static void main(String[] args) {
int val=0;
StringBuffer addedString=null;
System.out.println("card 1:-");

    for(int i=1;i<63;i++){
        addedString=new StringBuffer();
        val=i;
        char value = 0;
        if(Integer.toBinaryString(val).length()!=6)
            for(int j=6;j>Integer.toBinaryString(val).length();j--)
                addedString.append("0");
            addedString.append(Integer.toBinaryString(val));
        value = addedString.toString().charAt(addedString.toString().length()-1);
        if(value == '1'){
            System.out.println(val+"->"+addedString);   
        }
    }
    System.out.println("card 2:-");
    for(int i=1;i<63;i++){
        val=i;
        addedString=new StringBuffer();
        char value=0;
        if(Integer.toBinaryString(val).length()!=6)
            for(int j=6;j>Integer.toBinaryString(val).length();j--)
                addedString.append("0");
            addedString.append(Integer.toBinaryString(val));
        value = addedString.toString().charAt(addedString.toString().length()-2);
        if(value == '1'){
            System.out.println(val+"->"+addedString
                    );  
        }

    }
    System.out.println("card 6:-");
    for(int i=1;i<63;i++){
        val=i;
        addedString=new StringBuffer();
        if(Integer.toBinaryString(val).length()!=6)
            for(int j=6;j>Integer.toBinaryString(val).length();j--)
                addedString.append("0");
            addedString.append(Integer.toBinaryString(val));
        if (addedString.toString().startsWith("1")) {
            System.out.println(val+"->"+addedString.toString());
        }
        }
    }

}

答案 1 :(得分:1)

感谢pnathan。最后我得到了解决方案

    public class DecToBin {


public static void main(String[] args) 
    {
        int val=0;
        System.out.println("Card 1:-");
        for(int i=1;i<63;i++)
        {
        val=i;
        char value=(Integer.toBinaryString(val)).charAt(Integer.toBinaryString(val).length()-1);
            if(value == '1'){
            System.out.print(val+" ");   
        }
        System.out.println("\nCard 2:-");
        for(int i=1;i<63;i++)
        {
        val=i;
            if(Integer.toBinaryString(val).length() >= 2)
        {
         char value=(Integer.toBinaryString(val)).charAt(Integer.toBinaryString(val).length()-2);
    if(value == '1')
        {
         System.out.print(val+" ");   
        }
        }
        }
    System.out.println("\nCard 3:-");
        for(int i=1;i<63;i++)
        {
        val=i;
            if(Integer.toBinaryString(val).length() >= 3)
        {
         char value=(Integer.toBinaryString(val)).charAt(Integer.toBinaryString(val).length()-2);
    if(value == '1')
        {
         System.out.print(val+" ");   
        }
        }
        }
        System.out.println("\nCard 4:-");
        for(int i=1;i<63;i++)
        {
        val=i;
            if(Integer.toBinaryString(val).length() >= 4)
        {
         char value=(Integer.toBinaryString(val)).charAt(Integer.toBinaryString(val).length()-4);
    if(value == '1')
        {
         System.out.print(val+" ");   
        }
        }
        }
        System.out.println("\nCard 5:-");
        for(int i=1;i<63;i++)
        {
        val=i;
            if(Integer.toBinaryString(val).length() >= 5)
        {
         char value=(Integer.toBinaryString(val)).charAt(Integer.toBinaryString(val).length()-5);
    if(value == '1')
        {
         System.out.print(val+" ");   
        }
        }
        }
        System.out.println("\nCard 6:-");
        for(int i=1;i<63;i++)
        {
        val=i;
            if(Integer.toBinaryString(val).length() >= 6)
        {
         char value=(Integer.toBinaryString(val)).charAt(Integer.toBinaryString(val).length()-6);
    if(value == '1')
        {
         System.out.print(val+" ");   
        }
        }
        }
    }
    }