| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4206 人关注过本帖
标题:判断一个数是否为二进制数
取消只看楼主 加入收藏
阅逡
Rank: 1
等 级:新手上路
帖 子:103
专家分:0
注 册:2006-12-1
收藏
 问题点数:0 回复次数:6 
判断一个数是否为二进制数
为什么程序输出结果是这样的??
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: 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: 1
等 级:新手上路
帖 子:103
专家分:0
注 册:2006-12-1
收藏
得分:0 
还是版主牛,一个语句就搞定十几行

2006-12-01 19:30
阅逡
Rank: 1
等 级:新手上路
帖 子:103
专家分:0
注 册:2006-12-1
收藏
得分:0 
谢啦,我还没发觉Integer可以这样用

2006-12-01 19:30
阅逡
Rank: 1
等 级:新手上路
帖 子:103
专家分:0
注 册:2006-12-1
收藏
得分:0 
以下是引用angeloc在2006-12-1 18:07:22的发言:
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);
}

请问上面的str.substring(i,i+1)是啥意思啊


2006-12-01 23:58
阅逡
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;
int squar=1;
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("你输入的不是一个二进制数");
else
{
for(int j=0;j<Length-(1+i);j++)
{

squar=squar*2;
}
if(str.charAt(i)=='1')
sum+=squar;

squar=1;

}

}
System.out.println(sum);

}

}


2006-12-02 00:25
快速回复:判断一个数是否为二进制数
数据加载中...
 
   



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

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