我想打印
卡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以便我可以检查条件?
答案 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+" ");
}
}
}
}
}