手把手教你JAVA进制之间的转换

目录
  • 1.前言
  • 2.不同进制的特点
  • 3.进制之间的转换
    • 3.1 二进制转十进制:
    • 3.2 十进制转二进制:
    • 3.3 二进制转八进制:
    • 3.4 十六进制转二进制:
    • 3.5 二进制转十六进制:
  • 4. 代码实现二进制与十进制互转
    • 4. 1 十进制转二进制
    • 4. 2 二进制转十进制
    • 4. 3 练习:
  • 5. 二进制数据在Java代码中的写法
  • 总结

1.前言

进制也就是进位计数制,是人为定义的带进位的计数方法,类似于统计”正”字,对于任何一种进制,X进制,就表示每一位置上的数运算时都是逢X进一

10进制 : 逢十进一,包含元素 0~9

16进制 : 逢十六进一,包含元素 0~9 a b c d e f

2 进制 : 逢二进一,包含 0 和 1

通常情况下: 1byte = 8个二进制位

表示一个数字如果用二进制来表示的话,可以写成: 0000 1111

把这8个位进行组合,每3位组合就形成了8进制

每4位组合就形成了16进制

2.不同进制的特点

2进制 : 逢二进一 , 包含 0和1 , 以0b开头

8进制 : 逢八进一 , 包含 0~7 , 以0开头

10进制 : 逢十进一 , 包含元素 0~9

16进制 : 逢十六进一 ,包含元素 0~9 a b c d e f ,以0x开头

3.进制之间的转换

关于二进制的一些数据

3.1 二进制转十进制:

需求:计算二进制数据:0000 1101 对应的十进制

3.2 十进制转二进制:

需求:求十进制数字11对应的二进制数

简便算法: 11 先拆分成2的次幂元素组成的数, (8+2+1) 然后对应位置改成二进制 0000 1011算式计算:不断除以2商0为止,取余,倒着写,11的结果:1011

7的结果0111(读的时候先朝右,再朝上的方向读)

3.3 二进制转八进制:

从低次位开始,每3位为一组,产生一个八进制数字,最高位不足补0

需求:计算二进制数据110 0111对应的八进制

需求:计算八进制数据023 0653对应的二进制数据

3.4 十六进制转二进制:

一个数字拆分成4个数字

举例:b->11对应的二进制数1011

3.5 二进制转十六进制:

四个一组,转为一个数字,以0x开始

举例: 1111->15 ,a在16进制代表的是10,依次类推,15对应的16进制数就是f

4. 代码实现二进制与十进制互转

java 中也提供了二进制和十进制的互转方法:

4. 1 十进制转二进制

 private static void desToBin() {//10进制转2进制
        String s = Integer.toBinaryString(257);
        System.out.println(s);//100000001
 }

4. 2 二进制转十进制

Integer.parseInt(String s, int radix)

第一个参数:要转成十进制数的二进制字符串

第二个参数:指定的进制

注意:这里不支持直接使用负数的二进制码来表示负数,而是要用正数的二进制码添加负号来表示

    private static void binToDes() {
        int i = Integer.parseInt("-1100101101", 2);
        System.out.println(i);//813
        int i2 = Integer.parseInt("-1100101101", 2);
        System.out.println(i2);//-813
    }

4. 3 练习:

需求:输入十进制整数转成2进制,输入二进制整数转成十进制

package cn.cxy.exec;
import java.util.Scanner;
/*完成十进制与二进制之间的转换*/
public class Test {
    public static void main(String[] args) {
        //m1();
        m2();
    }
    private static void m2() {
        while (true) {
            System.out.print("输入整数的二进制码:");
            String s = new Scanner(System.in).nextLine();
            int a = Integer.parseInt(s, 2);
            System.out.println("对应的十进制数是:"+a);
        }
    }
    private static void m1() {
        while (true) {
            System.out.print("输入十进制整数:");
            int a = new Scanner(System.in).nextInt();
            String s = Integer.toBinaryString(a);
            System.out.println("对应的二进制数是:"+s);
        }
    }
}

5. 二进制数据在Java代码中的写法

在Java语法中:二进制字面值可以使用 0b 前缀的整数直接表示:

int a = 0b11001;

byte b = 0b1111111;

// 0b前缀语法不允许直接写负数的二进制码,这样写实际表示的是正数128

byte c = 0b10000000; //此处错误

// 要写byte的最小值-128,需要写 128 的二进制码,并加负号

byte d = -0b10000000;

总结

本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • Java实现的进制转换工具类完整示例

    本文实例讲述了Java实现的进制转换工具类.分享给大家供大家参考,具体如下: import java.nio.charset.Charset; /** * 十六进制(简写为hex或下标16)在数学中是一种逢16进1的进位制,一般用数字0到9和字母A到F表示(其中:A~F即10~15).<br> * 例如十进制数57,在二进制写作111001,在16进制写作39.<br> * 像java,c这样的语言为了区分十六进制和十进制数值,会在十六进制数的前面加上 0x,比如0x20是十进制的

  • Java 3种方法实现进制转换

    由其他进制转换为十进制比较简单,下面着重谈一谈十进制如何化为其他进制. 1.使用Java带有的方法Integer,最简单粗暴了,代码如下 //使用java提供的方法 //但仅局限于比较常用的二进制.八进制.十六进制 public static String trans1(int num, int radix) { if(radix == 2) return Integer.toBinaryString(num); else if(radix == 8) return Integer.toOcta

  • Java 中二进制转换成十六进制的两种实现方法

    Java 中二进制转换成十六进制的两种实现方法 每个字节转成16进制,方法1 /** * 每个字节转成16进制,方法1 * * @param result */ private static String toHex(byte[] result) { StringBuffer sb = new StringBuffer(result.length * 2); for (int i = 0; i < result.length; i++) { sb.append(Character.forDigi

  • java 进制转换实例详解

    java 进制转换实例详解 十进制转成十六进制: Integer.toHexString(int i) 十进制转成八进制 Integer.toOctalString(int i) 十进制转成二进制 Integer.toBinaryString(int i) 十六进制转成十进制 Integer.valueOf("FFFF",16).toString() 八进制转成十进制 Integer.valueOf("876",8).toString() 二进制转十进制 Integ

  • Java之实现十进制与十六进制转换案例讲解

    写了两种十六进制转十进制的方式,仅供参考. 基本思路:用十六进制中每一位数乘以对应的权值,再求和就是对应的十进制 方法一: import java.util.HashMap; import java.util.Map; import java.util.Scanner; public class Test { /** * @param: [content] * @return: int * @description: 十六进制转十进制 */ public static int covert(St

  • 手把手教你JAVA进制之间的转换

    目录 1.前言 2.不同进制的特点 3.进制之间的转换 3.1 二进制转十进制: 3.2 十进制转二进制: 3.3 二进制转八进制: 3.4 十六进制转二进制: 3.5 二进制转十六进制: 4. 代码实现二进制与十进制互转 4. 1 十进制转二进制 4. 2 二进制转十进制 4. 3 练习: 5. 二进制数据在Java代码中的写法 总结 1.前言 进制也就是进位计数制,是人为定义的带进位的计数方法,类似于统计"正"字,对于任何一种进制,X进制,就表示每一位置上的数运算时都是逢X进一 1

  • Python3进制之间的转换代码实例

    Python3进制之间的转换 在Python里面实现进制之间的转换是非常方便的,有专门的函数来进行这个操作: 下面直接上代码: # 进制之间的转换 a = 10 # 转换为二进制 print(bin(a)) # 结果为0b1010 # 转换为八进制 print(oct(a)) # 结果为0o12 # 转换为八进制 print(hex(a)) # 结果为0xa # 一个非十进制的数转换为十进制 print(int(0b1010)) # 结果为10 以上就是本文的全部内容,希望对大家的学习有所帮助,

  • python中常见进制之间的转换方式

    目录 1. 很多情况下需要进行不同进制之间的转换 下面的表格反应了常见进制之间的转换 2. 第二种是使用format函数进行转换 3. 手动转化 10进制转换为其他进制代码 其他的进制转为10进制代码 1. 很多情况下需要进行不同进制之间的转换 其中比较常用到的是python的内置函数进行进制的转换,一般使用内置函数进行转换的时候是先将控制台输入的字符串或者是自定义的字符串先转换为10进制然后将10进制转换为其他的进制,常见的是二进制.十进制.八进制.十六进制之间的转换,其中遵循一个原则是: 其

  • C 语言进制之间的转换

    二进制.八进制和十六进制向十进制转换都是非常容易的,就是"按权相加". 所谓"权",也即"位权".例如,十进制第1位的位权为100=1,第2位的位权为101=10,第3位的位权为102=100:而二进制第1位的位权为20=1,第2位的位权为21=2,第3位的位权为22=4.设数字所采用的进制为N(基数也是N),那么第 i 位的位权为 N(i-1). 不同进制转换为十进制举例: 二进制:1001 = 1×23 + 0×22+ 0×21 + 1×20

  • C# VB 实现10进制 16进制之间互相转换

    方法1: 复制代码 代码如下: int d=10; d.ToString("x") //或把x改为X,,,就变成了16位的字符串了. int x=Convert.ToInt32(d.ToString("x"),16);//把16进制的字符串变回10进制的. 方法2: 复制代码 代码如下: static void Main() { int i = 446; string hex = i.ToString( "X" /* or x * ); Cons

  • C#进制之间的相互转换详解

    下面笔者说说自己对进制转换的分析: 笔者认为,任何进制都可以直接转换到十进制,而十进制也可以相当容易的转换到其他进制,所以笔者在这里将十进制作为中间变量,任何进制通过它,都可以进行相互转换. 笔者先说说将其他进制转换到十进制的方式 复制代码 代码如下: /// <summary>        /// 其他进制转化到10进制        /// </summary>        /// <param name="num">需转换字符</pa

  • 浅析Java进制转换、输入、命名问题

    Java进制转换和C语言C++没有什么区别,不过因为我对进制转换不太熟悉,此处特记录一下生疏部分: 十进制转二进制:除以二取余数,直到商为零,余数顺序倒过来取就是二进制表示的数值.(八进制.十六进制同理) 二进制转八进制:二进制数值三位一组计算数值. 二进制转十六进制:二进制四位一组计算数值. 八进制.十六进制转二进制 是 二进制转八进制十六进制 的逆运算. Java输入输入似乎比C/C++要复杂(?) 首先要引入包util下的Scanner,创建Scanner的一个对象,之后才可以执行输入.

  • 解析PHP自带的进位制之间的转换函数

    bindec() -- 二进制转换为十进制 decbin() -- 十进制转换为二进制 dechex() -- 十进制转换为十六进制 decoct() -- 十进制转换为八进制 hexdec() -- 十六进制转换为十进制 octdec() -- 八进制转换为十进制 base_convert()-- 在任意进制之间转换数字

  • Java中Color和16进制字符串互相转换的方法

    1.原理 主要是调用了toHexString(将int类型转为16进制字符串).parseInt(将字符串解析为int)这两个方法. 2.代码 public static void main(String[] args) { String hexString = colorToHexValue(Color.RED); System.out.println("16进制字符串:" + hexString); Color color = fromStrToARGB(hexString); S

随机推荐