| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4210 人关注过本帖
标题:判断一个数是否为二进制数
只看楼主 加入收藏
阅逡
Rank: 1
等 级:新手上路
帖 子:103
专家分:0
注 册:2006-12-1
收藏
 问题点数:0 回复次数:19 
判断一个数是否为二进制数
为什么程序输出结果是这样的??
import java.io.*;
public class Test
{
public static void main(String[] args)throws IOException
{

int sum=0;

String str=new String();
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
str=in.readLine();
int Length=str.length();
for(int i=0;i<Length;i++)
{
if(str.charAt(i)!='0'||str.charAt(i)!='1')
System.out.println("你输入的不是一个二进制数");
}

}
搜索更多相关主题的帖子: 二进制数 判断 
2006-12-01 17:04
阅逡
Rank: 1
等 级:新手上路
帖 子:103
专家分:0
注 册:2006-12-1
收藏
得分:0 

我知道了,是我用错了一个符号,把&&用成||了,谢谢


2006-12-01 17:16
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
有问题吗]

可惜不是你,陪我到最后
2006-12-01 17:18
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
呵呵

可惜不是你,陪我到最后
2006-12-01 17:18
angeloc
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:36
帖 子:1353
专家分:0
注 册:2006-11-21
收藏
得分:0 
。。。。。。真是郁闷的问题呢。。。

老牛明知夕阳晚,不用扬鞭自奋蹄; Angelo\'s BLOG
2006-12-01 17:22
阅逡
Rank: 1
等 级:新手上路
帖 子:103
专家分:0
注 册:2006-12-1
收藏
得分:0 
不好意思啊,俺是菜鸟,刚在做这道题嘛!现在做好了,帮忙看一下有什么可以改进的:
import java.io.*;
public class Test
{
public static void main(String[] args)throws IOException
{

int sum=0;

String str=new String();
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
str=in.readLine();
int Length=str.length();
for(int i=0;i<Length;i++)
{
if(str.charAt(i)!='0'&&str.charAt(i)!='1')
System.out.println("你输入的不是一个二进制数");
if(str.charAt(i)=='1')
sum+=Square(i);
}
System.out.println(sum);

}
public static int Square(int i)
{
int square=1;
for(int j=0;j<i;j++)
square*=2;
return square;
}
}


2006-12-01 17:23
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
用Integer.parseInt(String s,int radix)就可以了

radix为几进制,如果是二进制,就是2了,输入的字符串不符合二进制规范就会抛出NumberFormatException

可惜不是你,陪我到最后
2006-12-01 17:33
angeloc
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:36
帖 子:1353
专家分:0
注 册:2006-11-21
收藏
得分:0 
以下是引用阅逡在2006-12-1 17:23:22的发言:
不好意思啊,俺是菜鸟,刚在做这道题嘛!现在做好了,帮忙看一下有什么可以改进的:
import java.io.*;
public class Test
{
public static void main(String[] args)throws IOException
{

int sum=0;

String str=new String();
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
str=in.readLine();
int Length=str.length();
for(int i=0;i<Length;i++)
{
if(str.charAt(i)!='0'&&str.charAt(i)!='1')
System.out.println("你输入的不是一个二进制数");
if(str.charAt(i)=='1')
sum+=Square(i);
}
System.out.println(sum);

}
public static int Square(int i)
{
int square=1;
for(int j=0;j<i;j++)
square*=2;
return square;
}
}

算法逻辑是不准确的,如果先输入1然后后面输入任意个0


老牛明知夕阳晚,不用扬鞭自奋蹄; Angelo\'s BLOG
2006-12-01 17:43
angeloc
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:36
帖 子:1353
专家分:0
注 册:2006-11-21
收藏
得分:0 
public static void main(String[] args)
{
int sum=0;
String str=new String();
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
str=in.readLine();
for(int i=0;i<str.length();i++)//循环操作输入的字符串
{
if(str.charAt(i)!='0'&&str.charAt(i)!='1')
{
System.out.println("...");
return;
}
if(i<str.length()-1)
{
sum=(sum+Integer.parseInt(str.substring(i,i+1)))*2;//二进制转十进制最基本方法
}
else
sum=sum+Integer.parseInt(str.substring(str.length()-1,str.length()));//把二进制最后一位加上
}
System.out.println(sum);
}

[此贴子已经被作者于2006-12-1 18:08:02编辑过]


老牛明知夕阳晚,不用扬鞭自奋蹄; Angelo\'s BLOG
2006-12-01 18:07
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
这么复杂
用Integer.parseInt(s,2);不就可以了吗

可惜不是你,陪我到最后
2006-12-01 18:08
快速回复:判断一个数是否为二进制数
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.036630 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved