为什么我写的这个二进制转十进制的不能转换比较大的数

一输入比较长的二进制数就显示不是二进制数 是在boolean那里出的问题吗 不知道怎么修改才能正常运行
比如输入10011010010 能显示1234

import java.util.Scanner;
public class Binary {

// Returns decimal representation of given binary number.
public static int toDecimal(String b) {

    // TODO
    int decimal = Integer.parseInt(b,2);
    return decimal;
}

// Returns whether or not given string is a binary number.
public static boolean isBinary(String b) {

    // TODO
    int inputNum = Integer.parseInt(b);

    while(inputNum != 0){
        if(inputNum % 10 > 1){
            return false;
        }
        inputNum = inputNum / 10;
    }
    return true;


}

public static void main(String[] args) {

    // TODO
    System.out.print("Enter binary: ");
    Scanner in = new Scanner(System.in);
    String binaryNum = in.next();
    try{
        int intNum = Integer.parseInt(binaryNum);

    boolean isBinary = isBinary(binaryNum);
        if(isBinary){
            int outputDecimal = toDecimal(binaryNum);
            System.out.println("\n"+ outputDecimal +" in decimal");
        }else{
            System.out.println("\n" + "Not binary!");
        }
    }catch(Exception e){
        System.out.println("\n" + "Not binary!");
    }
}

}

0

1个回答

...额 已经会弄了。大家不用看这问题了
Integer 长度超了 用Long就行了

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
十进制数与二进制数的转换,浮点数在内存中的表示与字符编码
虽然不是专业的CS出生,想想接触CS相关的东西也这么久了,居然不知道浮点数在内存中的表示是怎样的,实在是惭愧啊!于是最近查阅了相关资料,终于弄清了浮点数在内存中的表示,现在对相关的东西做一个总结。   以下总结主要来至于文档 A Tutorial on Data Representation Integers, Floating-point Numbers, and Characters 中的内
十进制转二进制
写一个函数,输入一个10进制数,输出它的2进制,例如:输入9,输出1001 #include<stdio.h> void fun(int n) { int s[32],i=0; while(n) { s[i++]=n%2; n/=2; } for(i=i-1;i>=0;i--) { ...
十进制小数转化为二进制(不一定都能够精确表示)
》》十进制整数转化为二进制: 举例:10 商 余 10/2 5 0 5/2 2 1 2/2 1 0 1/2 0 1 所以10转化为二进制就是“1010”,从下到上,过多的就不说了,整数转化为二进制还是很简单的,只要遇到商为0即可结束。 那么,十进制整数转化为二进制的算法会不...
进制转换的原理
本文介绍了短除法进行进制转换的原理。
pycharm环境下进制转换-将十进制数转换为二进制、八进制、十六进制
将十进制数字转换为二进制、八进制、十六进制
Java中输入一个十进制数,如何转换为二进制数
方法一:利用Java API直接转换十进制数如何转换为二进制数,这在Java API 中有一个方法,Integer.toBinaryString( ) 括号里面写上你要转换的十进制数,这样可以直接转换。例如:public static void main(String[] args) { 十进制转换为二进制 System.out.println(Integer.toBi
3:十进制数转二进制数(类似大整数除法)
题目链接:http://dsalgo.openjudge.cn/huawen02/3/ 题目大意就是将十进制数转换成二进制,难就难在十进制数的位数小于100位。 这就意味着不能用任意类型来存,只能用数组来存。 十进制转二进制十进制转二进制 十进制整数转换为二进制整数采用"除2取余,逆序排列"法。 具体做法是:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进
汇编语言实验(九)之十六进制数值转二进制
输入四位十六进制的数值,将十六进制数值转二进制输出 程序运行:   代码: datas segment maxLength db 5 hexLength db 0 hex db 5 dup(?) bin ...
栈的应用--数制转换(十进制数转换为二进制、八进制、十六进制)
结果图: 代码如下:#include<stdio.h> #include<stdlib.h> #define ERROR 0 #define OK 1 typedef int Status; typedef int ElemType; typedef struct StackNode{ ElemType data; struct StackNode *next; }StackNod
二进制、八进制、十六进制之间转换以及分别和十进制之间的转换
二进制转八进制 二进制转十六进制 十进制转二进制八进制十六进制二进制转八进制规律:合三为一,不足在前面补零例如: 二进制:101 100 111 八进制:0541 二进制转十六进制规律:合四为一,不足在前面补零例如: 二进制:1111 0011 1001 十六进制:0xF39 十进制转二进制、八进制、十六进制规律:十进制转多少就除多少,直到剩下0为止,把余数从最晚到最早排列起来。例如:
Java把十进制转成二进制(任意进制)的程序
Java把十进制转成二进制(任意进制)的程序
遗传算法解题代码、二进制十进制相互转换代码
遗传算法是根据自然界物竞天择,适者生存现象提出的一种随机搜索算法。首先进行编码,形成染色体,然后交配、变异等等。另外本代码也包括二进制十进制转换等等。
C++ 10进制转换成2进制、8进制、16进制
Evelyn  QQ:1809335179 今天是做京东的笔试题,简直又是被扼杀在摇篮里了,是一个求取幸运数的题目,即一个十进制的数如果各个位数的值相加与转换成2进制后1的位数相等,即这个数为幸运数。 也是由于一时紧张没有想到,只想着有没有函数可以进行进制之间的转换,没有想到自己去写,确实有一个函数itoa,itoa(value,char,要转换的进制),头文件,可以进行二进制转换。在本地也
用c++实现大整数的二进制转换
//written by jmh发现网上的大整数转二进制的代码大多没有注释。。非常晦涩难懂,所以写了一遍精简的变量shang为大整数每一位(从左开始)对2求的单个商,shang_sum为商的和,output用于存二进制结果,于为每一次循环最后一位对2的余数,若还嫌不够大可以把数组定义为longlong。思路:1)用字符数组存十进制数和二进制数2)进制转换还是使用除2得余法,先顺序存储每次的余数,再...
用栈实现十进制转换成二进制(c语言)
用栈实现十进制转换成二进制(c语言)用栈实现十进制转换成二进制(c语言)用栈实现十进制转换成二进制(c语言)
数据结构java(将十进制N转换为二进制)
我们看到所转换的2进制数按底位到高位的顺序产生的,而通常的输出是从高位到低位的,恰好与计算过程相反,因此转换过程中每得到一位2进制数则进栈保存,转换完毕后依次出栈则正好是转换结果。 请实现其算法。
用代码实现将二进制数转换为十进制,(非使用API)
在java的进制转换中,java自带的有相关的方法,二进制转换为十进制,只需要使用Inteager.valueOf(s,a),其中,s代表的是需要转换的二进制数,后面的a代表我们当前数的进制。比如我们要转换的数是二进制,则a为2. 但是,我们今天要写的是不使用这种自带的方法,来实现二进制到十进制的转换: 首先我们需要一个变量来存储我们的被转换数,其次,我们要使用的是一个变量来存储最终的输出结果
十进制与二进制转换(纯整数和浮点数)
(一)纯整数与纯小数定点格式:约定机器中所有数据的小数点位置是固定不变的。1.纯整数:小数点位于最低位的右边。    纯小数:小数点位于最高位和次最高位之间。//最高位为符号位,0表示正数,1表示负数当Xn为零时,此二进制转换为十进制:|x| = Xn-1 * 2^(n-1)+Xn-2*2^(n-2)+……+X0*2^0 2.纯小数若x表示为纯小数时,那么小数点位于xnhe xn-1之间。当各位数...
arduino十进制转十六进制
以下是arduino十进制转十六进制的方法,如果有什么可以改进的地方请留言 打印 Serial.print(inByte, HEX); 十进制转十六进制 //十进制转十六进制 String tohex(int n) { if (n == 0) { return &quot;00&quot;; //n为0 } String result = &quot;&quot;; char _16[] =...
数据结构-栈之二进制转十进制和八进制
栈满则后进先出原则,我们可以利用此特性实现二进制转十进制、二进制转八进制、二进制转十六进制等相关操作,废话不多说,直接上代码。 二进制转十进制: // // Created by Administrator on 2018/5/28. // //二进制转十进制 #include &amp;lt;stdio.h&amp;gt; #include &amp;lt;stdlib.h&amp;gt; #include &amp;lt...
java 实现二进制与十进制的转换
简单的java进制的转换
【c语言】多种方法:将十进制数转化成二进制数,计算其中1的个数
以下是我学到的三种方法,如果大家还有更好的方法,可以讨论交流。 首先,我们得知道十进制怎样转化成二进制,如下图。 得到10的二进制数为1010 那么我们会发现,10%2是判断二进制数的最后一位是0还是1,判断完成后向右移一位即10/2得到5,接着5%2判断二进制数的倒数第二位是0还是1,判断完成后向右移一位即5/2得2,重复这个过程,直到0/2结束。最终我们得到了10的二进制数1010.
用顺序栈实现十进制转二进制
//十进制转二进制 #include&amp;lt;bits/stdc++.h&amp;gt; using namespace std; #define maxsize 1000 struct Stack{ int *base; //栈底指针 int *top; //栈顶指针 int stacksize; //栈可用的最大容量 }; bool initstac...
利用栈进行二进制到八进制、十进制、十六进制的转换
1、二进制转八进制: /*二进制转八进制*/ #include&amp;amp;lt;stdio.h&amp;amp;gt; #include&amp;amp;lt;stdlib.h&amp;amp;gt; #include&amp;amp;lt;math.h&amp;amp;gt; #define MAXSIZE 20 #define ERROR 0 #define OK 1 typedef int Status; typedef char El
二进制和十进制相互转换的简便方法
1、二进制转换为十进制:         如果按照传统的方法,算2的乘方与二进制每一位的积,这样容易理解,但是在编程过程中,求2的乘法用到的pow函数是一个double类型的函数,而我们经常用到的是int类型的数,在处理数据类型的时候会很麻烦,更甚者会出错。所以我们换另一种方法,即不用pow函数,用一个初值为1的变量,将这个变量与每一位二进制从后往前相乘,相乘一次后这个变量就乘2。即我们换了一种...
java实现输入一个任意十进制数转换为二进制数
package com.xingyi.one.firstdemo; import java.util.Scanner; public class FirstDemo {          //将任意一个十进制数转换为二进制数     public void NumberChanger() {                  Scanner sc = new Scanner(System.in...
【数制转换】-十进制数转换成二进制数
第一部分:整数转换  逐次除2取余法用2逐次去除待转换的十进制整数,直至商为0时停止;每次所得的余数即为二进制数码,先得到的余数在低位,后得到的余数排在高位。例子1: 将83转换成二进制数(逐次除2取余法)        得到的余数依次为: 1    0    1    0    0    1     1  可得到:(83)10=(1010011)2第二部分:小数转换   乘2取整法逐次用2去乘待...
利用栈实现十进制对二进制,八进制、十六进制的任意转换(N进制)
1、程序代码如下(利用栈的动态分配实现): #include&amp;amp;amp;lt;stdio.h&amp;amp;amp;gt; #include&amp;amp;amp;lt;stdlib.h&amp;amp;amp;gt; #define ERROR 0 #define OK 1 #define INITSIZE 10 #define INCREMENT 2 typedef int Status; typedef int Elemtype; ty
格雷码到普通十进制数二进制表示的转化
从高位开始,高位直接写下来,然后,把上一位的结果和格雷码的当前位相异或得到十进制数的二进制表示的当前位的值。 代码如下: int transform(char* s){ int len = strlen(s); int temp[70]; temp[0] = s[0] - '0'; for(int i = 1;i &lt; len;++i)temp[i] = temp[i - 1] ^...
将十进制数转换为二进制数
前言 代码 思考 尾声前言题目:如何将一个十进制的数转换为二进制数?补充说明,这是我在做一个项目时发现的问题,因此顺手把这个问题给解决了一下。代码#include <iostream> using namespace std;//函数binary说明:整个函数为递归实现,其中算法由每次除二取余那种方式求二进制数,所以reminder为余数 void binary(int number){ //
二进制、十进制、十六进制之间的转换
二进制数只由0和1组成,如1010010010、010100111001。【判断二进制数为正数还是负数,看首位数为“0(负数)”还是        为“1(正数)”】。 十进制数是我们日常所用的数,由“0123456789”组成,逢10进1,如-123、34、0、567、100000。 十六进制数由“0123456789ABCDEF”组成,以“H”结尾,逢16进1,如123H、A123BH、6...
栈的应用——十进制转二进制
利用栈结构,编写程序将十进制数转换成二进制数。提示:十进制数值转换成二进制使用辗转相除法将一个十进制数值转换成二进制数值。即用该十进制数值除以2,并保留其余数;重复此操作,直到该十进制数值为0为止。最后将所有的余数反向输出就是所对应的二进制数值。转换算法要求用一个函数完成。顺序栈的基本操作的代码可参考如下:#include&amp;lt;stdio.h&amp;gt; #include&amp;lt;stdlib.h&amp;g...
C# 10进制转换2进制,并且保留两位数的方法
int a = 10; a.ToString("X2")
VB.NET学习笔记:数据类型——进制转换(二进制、八进制、十进制和十六进制相互转换)
在.NET Framework中,System.Convert类中的ToString方法和ToInt32(ToInt64)方法都可以方便的实现各种进制间的相互转换。 1、Convert .ToString 方法 Convert .ToString 方法可以将整数值转换为其指定基数(必须是 2、8、10 或 16)的等效字符串表示形式。即可以将十进制整数转换成二进制、八进制、十进制(无实际意义)或十...
C/C++:十进制转为二进制(n进制转为十进制)
I. 十进制转换为二进制1.在二进制中,奇数的末尾一定是1,而偶数的末尾一定是0. 一般而言,对于数字n,其二进制的最后一位是n%2;这里值得注意的是,计算的第一位数字其实是待输出的二进制数的最后一位,(所以这里可以定义一个数组来存放二进制数0或1;当然也可以采用函数递归来实现);要获得下一位数字,必须把原数字除以2。如果计算结果是偶数,那么二进制的下一位数就是0;如果是奇数,就是1.把上面的话
c++递归实现十进制数转二进制(输入式
数据结构,递归实现十进制数转二进制数,C++实现,可多次输入数
二进制,十进制,十六进制,bit转换工具【Ucode++ v1.8.0】
个人原创软件,MFC界面,可以任意转换64bit数据到2进制、10进制、16进制,2进制可以直接查看任意bit,取0~63之间的任意区间值,并且支持取位、移位大小端转换、加、减、乘、除、取余、与、或、非等计算,支持GB2312Z中文编码、Unicode、ANSI、UTF-8之间的相互转化,支持MD5-32/MD5-16、CRC32/CRC64的计算,尤其适合做嵌入式开发、单片机、逆向分析破击的相关人员使用。
二进制数1111转换成十进制形式
1111,它是多少呢?   你可能还要这样计算:1 * 2^0 + 1 * 2^1 + 1 * 2^2 + 1 * 2^3 = 1 * 1 + 1 * 2 + 1 * 4 + 1 * 8 = 15。   然而,由于1111才4位,所以我们必须直接记住它每一位的权值,并且是从高位往低位记,:8、4、2、1。即,最高位的权值为23 = 8,然后依次是 22 = 4,21=2, 20 = 1。  ...
C语言十进制转为二进制错误
#define _CRT_SECURE_NO_WARNINGS #include &amp;lt;stdio.h&amp;gt; char * DtoB_0_Error(int a) {     int i = 0;     char Arr[32] = {0};  //在栈上分配的数组,当函数调用完成之后就销毁了,因此返回0     while (a)     {         Arr[i] = a % 2...
C语言实现十进制数转换为二进制数
C语言栈的方式实现十进制数转换为二进制数,完整代码,DEVC中直接使用