妈妈再也不用担心十进制数过大了233(注意只支持非负数)

import com.google.common.base.Strings;

import java.math.BigInteger;
import java.util.Scanner; /**
* 任意长度十进制数转化为二进制
*/
public class AnyNumberConverterFromDecimalToBinary { /**
*
* @param srcNum 待转换的十进制数
* @return 二进制字符串
*/
private static String convertFromDecimalToBinary(String srcNum){
BigInteger src = new BigInteger(srcNum);
StringBuilder sb = new StringBuilder();
BigInteger zero = new BigInteger("0");
BigInteger two = new BigInteger("2");
if (zero.equals(src)) {
return "0";
}
while (!zero.equals(src)) {
sb.append(src.remainder(two));
src = src.divide(two);
}
return sb.reverse().toString();
} /**
* 格式检查
* @param srcNum
* @return 若可以转化为整数, 返回true; 否则返回false
*/
private static boolean FormatCheck(String srcNum){
if (Strings.isNullOrEmpty(srcNum)){
return false;
}
if (!isDigit(srcNum)) {
return false;
}
return true;
} /**
* 判断一个字符串中每个字符是否都为数字
* @param strNum
* @return 若每个字符都是数字, 返回true; 否则返回 false
*/
private static boolean isDigit(String strNum) {
return strNum.matches("[0-9]{1,}");
} public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String srcNum = sc.nextLine();
if (!FormatCheck(srcNum)) {
System.out.println("格式错误");
return ;
}
System.out.println(convertFromDecimalToBinary(srcNum));
} }

我的博客即将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=ila0vet4vyqn

【模板小程序】任意长度非负十进制数转化为二进制(java实现)的更多相关文章

  1. 十进制数转化成二进制后包含一的数量(c++)

    #include <iostream> using namespace std;int func(int x){    int count=0;    while(x){          ...

  2. C++将十进制数转化为二进制

    #include<iostream> using namespace std; void main() { ; ]; cin>>n; i=n; while(i) { a[j]= ...

  3. 模板小程序】求小于等于N范围内的质数

    xiaoxi666 联系邮箱: xiaoxi666swap@163.com 博客园 首页 新随笔 联系 订阅 管理 [模板小程序]求小于等于N范围内的质数   1 //筛法求N以内的素数(普通法+优化 ...

  4. java语言将任意一个十进制数数字转换为二进制形式,并输出转换后的结果

    package com.llh.demo; import java.util.Scanner; /** * * @author llh * */ public class Test { /* * 将任 ...

  5. 微信小程序 WebSocket 使用非 443 端口连接

    前言 微信小程序支持使用 WebSocket 连接到服务器,准确地说是带 SSL 的 WebSocket,而微信小程序中不允许使用带端口的 wss 连接,只能使用 443 端口.想使用其他端口就需要在 ...

  6. 微信小程序音频长度获取的问题

    小程序推荐使用wx.createInnerAudioContext()创建的innerAudioContext,我们也通过这个接口创建音频.音频的长度可以通过属性获取: 但是,给innerAudioC ...

  7. 从微信小程序到鸿蒙js开发【15】——JS调用Java

    鸿蒙入门指南,小白速来!0基础学习路线分享,高效学习方法,重点答疑解惑--->[课程入口] 目录:1.新建一个Service Ability2.完善代码逻辑3.JS端远程调用4.<从微信小 ...

  8. 微信小程序开发之http到https的转化

    小程序从公布到现在已经过去好几个月了,本来从小程序发布出来就准备抱着微信的大腿进行一波小程序开发的,但是由于公司项目小程序暂时不支持,也就只能一直搁浅.过年过来偶然和朋友谈起小程序,觉的工作再忙也得找 ...

  9. 微信小程序,时间戳和日期格式互相转化

    微信小程序,时间戳转为日期格式 通常后台传递过来的都是时间戳,但是前台展示不能展示时间戳.就需要转化了. 功能说明: 微信小程序里,时间戳转化为日期格式,支持自定义. 拷贝至项目utils/utils ...

随机推荐

  1. Redis-03.事务

    Redis事务: 在一个队列(queue)中依次执行一系列的命令. 事务的三个阶段: 1.开始事务(MULTI) 2.命令加入队列 (QUEUE) 3.执行事务 (EXEC) 示例1: MULTI & ...

  2. 【渗透攻防】深入了解Windows

    前言 本篇是基础教程,带大家了解Windows常用用户及用户组,本地提取用户密码,远程利用Hash登录到本地破解Hash.初步掌握Windows基础安全知识. 目录 第一节 初识Windows 第二节 ...

  3. 两张图彻底搞懂MyBatis的Mapper原理!

    作者:肥朝 简单使用 这是一个简单的Mybatis保存对象的例子 1@Test 2public void testSave() throws Exception { 3 //创建sessionFact ...

  4. 老罗最新发布了“子弹短信”这款IM,主打熟人社交能否对标微信?

    1.引言 2018年8月20日,锤子科技在北京召开了夏季新品发布会.除了新手机,发布会上还正式推出了主打语音功能的即时通讯IM聊天工具:子弹短信.这款工具此前今年早些时候在「鸟巢」发布会上初次亮相,在 ...

  5. 第88节:Java中的Ajax和ASP.NET和TCP/IP 教程和JSON

    第88节:Java中的Ajax和Jquery ajax是什么?有什么用?原理,怎么用? ajax是asynchronous javascript and xml(异步javascript和xml),是 ...

  6. Python的基础语法(一)

    0. 前言 最近正在重新整理Python的基础知识,以便更好地学习新知识.这一部分主要是讲述Python基础语法的演示.下面的语法都是基于Python3的语法. 1. 注释 注释:Python的注释方 ...

  7. Python 22端口发邮件

    #!/usr/bin/python#-*-coding:UTF-8-*- import smtplibimport timeimport os from email.mime.text import ...

  8. Zookeeper-watcher机制源码分析(一)

    Watcher的基本流程 ZooKeeper 的 Watcher 机制,总的来说可以分为三个过程:客户端注册 Watcher.服务器处理 Watcher 和客户端回调 Watcher 客户端注册wat ...

  9. 避免jquery的click多次绑定方法

    $("#xxx").click(function(){}) 这样只是会在原click方法中继续添加新方法: 当然解决办法是解绑: $("#xxx").unbin ...

  10. Ubuntu下将python从2.7升级到3.5

    在ubuntu 的终端中用代码下载最新的Python sudo apt-get install python3 系统会提示输入Linux 的密码,输入密码后下载 刚才下载的Python程序被安装在us ...