目录

  • 前言
  • 十进制转二进制
    • 正整数转二进制
    • 小数转换成二进制
    • 代码实现
  • 二进制转十进制
    • 代码实现
  • BigInteger
    • 概念
    • 运用

前言

Java有哪些工具类可以实现十进制与二进制之前的转换呢?欲知详情,请看下文分解。

十进制转二进制

正整数转二进制

除2取余,逆序排列,高位补零。

示例:

十进制255 = 二进制1111 1111

计算过程:

255/2=127=====余1
127/2=63======余1
63/2=31=======余1
31/2=15=======余1
15/2=7========余1
7/2=3=========余1
3/2=1=========余1
1/2=0=========余1

小数转换成二进制

乘2取整,顺序排列。

十进制0.625 = 二进制0.101

计算过程:

0.625*2=1.25======取出整数部分1
0.25*2=0.5========取出整数部分0
0.5*2=1==========取出整数部分1

代码实现

Java类实现:

System.out.println(new BigInteger("255", 10).toString(2));

自定义实现:

public static void main(String[] args) {System.out.print("输入一个十进制数:");Scanner s = new Scanner(System.in);int num = s.nextInt();String result = "";for (int i = num; i > 0; i /= 2) {result = i % 2 + result;}System.out.println(result);
}

二进制转十进制

小数点前或者整数要从右到左用二进制的每个数去乘以2的相应次方并递增,小数点后则是从左往右乘以二的相应负次方并递减。

示例:
二进制数1101.01转化成十进制

计算过程:

1101.01(2)=1*20+0*21+1*22+1*23 +0*2-1+1*2-2=1+0+4+8+0+0.25=13.25(10)

代码实现

Java类实现:

Integer.parseInt("1111",2);

自定义实现:

public static void main(String[] args) {System.out.print("输入一个二进制数:");Scanner scanner = new Scanner(System.in);int binaryNumber = scanner.nextInt();int decimal = 0;int p = 0;while (true) {if (binaryNumber == 0) {break;} else {int temp = binaryNumber % 10;decimal += temp * Math.pow(2, p);binaryNumber = binaryNumber / 10;p++;}}System.out.println(decimal);
}

BigInteger

概念

在Java中,由CPU原生提供的整型最大范围是64位long型整数。使用long型整数可以直接通过CPU指令进行计算,速度非常快。
如果我们使用的整数范围超过了long型怎么办?

这里就引入我们要了解的主角BigInteger。

java.math.BigInteger就是用来表示任意大小的整数。BigInteger内部用一个int[]数组来模拟一个非常大的整数:

运用

如果不借助BigInteger类,当你需要运算9999999999999999的6次方,你敢想吗?或者还又哪些办法

BigInteger bi = new BigInteger("9999999999999999");
System.out.println(bi.pow(6));

结果:

999999999999999400000000000000149999999999999980000000000000001499999999999999940000000000000001

如果在疯狂点?结果是多少?

BigInteger bi = new BigInteger("999999999999999999");
System.out.println(bi.pow(999999999));

BigInteger和Integer、Long一样,也是不可变类,并且也继承自Number类。因为Number定义了转换为基本类型的几个方法:

转换为byte:byteValue()
转换为short:shortValue()
转换为int:intValue()
转换为long:longValue()
转换为float:floatValue()
转换为double:doubleValue()

通过上述方法,可以把BigInteger转换成基本类型。如果BigInteger表示的范围超过了基本类型的范围,转换时将丢失高位信息,即结果不一定是准确的。如果需要准确地转换成基本类型,可以使用intValueExact()、longValueExact()等方法,在转换时如果超出范围,将直接抛出ArithmeticException异常。

点赞 收藏 关注
吾人只有进德与修业,这二事靠得住

Java实现十进制与二进制互相转换相关推荐

  1. 十进制与二进制之间转换详解

    文章目录 十进制与二进制之间转换详解 (一)十进制数转二进制数 1.1 十进制正整数转二进制 1.2 十进制负整数转二进制 1.3 十进制小数转二进制数 (二) 二进制数转成十进制数 2.1 二进制整 ...

  2. IP地址的分类 十进制与二进制的转换

    liuweifei 1.IP地址的分类: ​ A类IP地址 A类IP地址就由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须 是"0".地址范围从1.0.0.1到127. ...

  3. JAVA:实现十进制转二进制算法(附完整源码)

    JAVA:实现十进制转二进制算法 package com.thealgorithms.conversions;import java.util.Scanner;/*** This class conv ...

  4. 计算机常用数制转换说课稿,小学信息说课稿:十进制与二进制的转换

    <十进制与二进制的转换>是小学学科中重点内容,也是教师招考中的重点内容.下面的小编将从教材分析.学情分析.教学目标确立.教法与学法及教学设计五个方面的内容进行阐述这篇说课稿: 一.教材分析 ...

  5. c语言二进制转换算法栈,用C语言顺序栈实现十进制和二进制的转换

    用C语言顺序栈实现十进制和二进制的转换 #include #include #include #define M 100 typedef int datatype; typedef struct{ d ...

  6. java实现十进制与二进制之间的转换

    十进制转二进制 int num = 100;String str = Integer.toBinaryString(num);System.err.println("二进制===" ...

  7. Java写十进制和二进制互转

    package com.helong.test;import java.util.Scanner;public class Literals {public static void main(Stri ...

  8. 基于的Java的十进制转二进制实现

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一.算法描述 二.代码实现 总结 一, 算法描述: 十进制转二进制的方法,即整数部分一直除以二取余(反向排列),小数部分一直 ...

  9. 数字计算机在线用,十进制与二进制在线转换工具

    APP说明 (1) 十进制转换为二进制,分为整数部分和小数部分 ① 整数部分 方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下 ...

最新文章

  1. 基于FCN,U-Net的深度学习医学影像分割算法(细胞分割算法)以及传统算法分析
  2. day09_读写分离_组件介绍
  3. python面相对象编程指南_Python面向对象编程指南
  4. 控制用户的访问之权限、角色【weber出品必属精品】
  5. Win32 一个helloworld对话框
  6. 前端学习(2920):v-html和v-text
  7. qaxwidget传递参数到html,记一次QT使用QAxWidget打开.html文件调用显示离线百度地图不能缩放,自定义图片不能显示解决方法...
  8. std::nothrow
  9. apache+php
  10. Lotus Notes 中导航的键盘快捷方式
  11. 天行健,君子以自强不息;地势坤,君子以厚德载物的权威解释
  12. 使用AWS的python库boto3调用ec2服务
  13. windows 挂载百度网盘/阿里云盘等(网盘变本地硬盘) alist + raidrive
  14. 四川2021高考体考成绩查询,2021年四川体育类专业成绩查询时间及入口_中职中专网...
  15. 网络数据帧中的(Jumbo Frame)巨帧、超长帧
  16. 她是中国的计算机女神!中国首台自主设计计算机的缔造者——夏培肃 (下)
  17. JSP_EL_JTEL
  18. 国庆档来袭,电影市场只能依靠“黄道吉日”捞金?
  19. codeforces765F Souvenirs
  20. 算法一 knn 扩展 BBF算法,在KD-tree上找KNN ( K-nearest neighbor)

热门文章

  1. 做好站内站外优化,网站SEO优化效果才能一步到位!
  2. 钉钉机器人关键字自动回复_如何用 GPT2 和 BERT 建立一个可信的 reddit 自动回复机器人?...
  3. 中国各省最高与最低气温热力图
  4. win10安装jdk12并配置环境
  5. Durbin-Watson 检验
  6. 低端的IT培训机构,请守住你们的贞操
  7. jsp+ssm+springboot校园旧书交易交换平台java项目
  8. QQ项目之五查找和添加好友
  9. 离线下载Visual c++2019
  10. ios 取设备语言_iOS 获取设备当前语言和地区