`
greemranqq
  • 浏览: 972012 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

JAVA 常用进制 转换

阅读更多

那天别人问了一道题:0010>4和 010>>2.类似这个,发现都以忘了,然后又从新补充,记录一下。

JAVA 中几个进制的表示:

 

二进制

比如 int a = 1;表示应该是 0001.是四位的,但是前面的全是0可以不显示。由于二进制表示太长了,因此一般不用,eclipse 也不会显示出来。听说JDK 1.7 以上 二进制是0b 开头,由于JDK BUG 原因,一直没有,大家自己去了解吧。

 

八进制:

八进制是就有前缀了,以0开头,比如010 ,转换成十进制是8.。在程序转换中,打印前面的0也被省略了。他的范围值 0~7.如果你看见1238,这种,就肯定不是八进制了。

 

16进制:

前缀是0x.比如:0x10,表示16.表示范围是:0~9,A (10)B(11)C(12)D(13)E(14)F(15),如果是:0xFF = 255.

 

上面的转换,我默认全是10进制的转换,下面我们看看 是如何转换的。

 

转换原则:从非0开始计算,用默认进制为底数,当前位置为减-1,为幂,乘以当前位置的数。所有结果相加。

 

二进制转换:因为二进制只能0,1 因此就省略了 * 1.

0111 = 7,   2^(3-1) + 2^(2-1)+2^(1-1) = 4+2+1. 

0101 = 5,   2^(3-1) +2^(1-1) = 4+1. 

 

八进制转:

010 = 8,       8^(2-1)*1= 8

012 = 10,   8^(2-1)*1 +2 = 8+2

036 = 30,     8^(2-1)*3+6 = 24+6

0236 = 158, 8^(3-1)*2+8^(2-1)*3+6 = 128 + 24+6

 

 

16进制转换:

0x10 = 16,         16^(2-1)*1 + 0 = 16 + 0

0x1A =  26,      16^(2-1)*1 +10(A) = 16+10

0x2AF = 687,     16^(3-1)*2+16^(2-1)*10 +15(F) = 512 + 160 + 15

 

至于 10进制转换为 其他进制,就用除法,逆序排序就行,大家都懂的~。~

JAVA 还提供了一些方法,可以用用:

// 将10进制,转换成其他进制
		// 转换成二进制
		System.out.println(Integer.toBinaryString(12));
		// 转换成8进制
		System.out.println(Integer.toOctalString(12));
		// 转换成16进制
		System.out.println(Integer.toHexString(12));
		
		
// 将其他进制转换为10进制 ,默认只能转2~36 进制。
		// 二进制转换
		System.out.println(Integer.parseInt("101", 2));
		// 会出错,因为 二进制只能有01
		//System.out.println(Integer.parseInt("21", 2));
		// 8进制转换
		System.out.println(Integer.parseInt("021", 8));
		// 16进制转为
		System.out.println(Integer.parseInt("021", 17));
		// 5进制转换
		System.out.println(Integer.parseInt("021", 5));
		// 会出错,因为 5进制,不能有6
		//System.out.println(Integer.parseInt("061", 5));
		// 出错,超出转换范围
		//System.out.println(Integer.parseInt("021", 37));

		// 这个和上面类似,只是返回是Integer,上面返回的是int,看源码就知道了
		System.out.println(Integer.valueOf("010", 8));

 

 

 

 

2
2
分享到:
评论

相关推荐

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

    Java实现的进制转换工具类是Java语言中的一种常用工具类,用于实现各种进制之间的转换操作,如二进制、十六进制、字符串、数组等。该工具类主要提供了将字节数组转换为十六进制字符数组或字符串的方法,以及将字符串...

    4种常用进制转换器

    这里我们主要探讨的是"4种常用进制转换器",它是一款便捷的工具,帮助用户轻松实现不同数值系统之间的转换。V5.0.0.3版本因其高效、实时的转换特性受到了用户的高度评价。 首先,我们要了解最基本的四种进制:二...

    进制转换器(java)

    本项目名为"进制转换器(java)",它是一个小巧的工具,专门用于进行2、8、10和16进制之间的转换,特别是针对整数类型。以下将详细讲解进制转换的基本原理以及在Java中如何实现这些转换。 首先,我们来看二进制...

    【Java】进制转换.zip

    在本项目"【Java】进制转换.zip"中,我们主要关注的是如何在Java中进行进制转换。这个项目提供了两个实现进制转换的Java源文件:`进制转换表代码(单文件).java`和`进制转换(控制台版).java`。这些代码可以帮助...

    大数16进制向10进制转换

    - **基础原理**:大数16进制转换为10进制的核心是逐位进行乘以16的幂并累加。具体步骤如下: 1. 从右向左,将16进制数的每一位视为16的幂次方,例如最右边的一位对应16^0,第二位对应16^1,以此类推。 2. 对于每...

    进制转换小程序

    4. 计算机辅助法:利用编程语言如Python、Java等内置的函数进行进制转换,例如Python中的bin()、oct()、hex()和int()函数。 进制转换小程序的设计通常包含以下几个关键部分: 1. 输入模块:用户输入需要转换的数字...

    java String 与各种进制字符之间的转换

    通常,这样的文件会包含对各种进制转换的测试用例,以验证转换函数的正确性。 总之,理解和掌握Java中String与各种进制字符之间的转换对于日常编程至关重要。通过熟练运用上述方法,可以轻松处理与进制相关的任务,...

    2-16之间的进制转换

    在这个“2-16之间的进制转换”项目中,我们将深入探讨如何使用Java Swing实现从二进制到十六进制之间任意进制的转换。 首先,我们要理解不同进制的基本概念。二进制(Binary)是计算机科学的基础,仅使用0和1表示...

    进制转换器源码

    进制转换是计算机科学中的基本概念,用于在不同的数值系统之间转换数字。在这个"进制转换器源码"中,我们可以看到一个程序,它能够处理从二进制(Binary)到三十六进制(Hexavigesimal)之间的数字转换。下面我们将...

    Java程序十进制转二进制,八进制,十六进制

    在Java编程语言中,将十进制...总的来说,理解并熟练掌握这些进制转换在Java编程中至关重要,特别是在处理位运算、数据存储和网络通信等场景。通过Transform.java这样的简单程序,开发者可以更好地理解和实践这些概念。

    Java万能进制转换器.pdf

    根据以上信息,我们可以看到文档介绍了一个基于Java的万能进制转换器,这个程序可能具备图形用户界面,允许用户进行不同进制数值之间的转换。同时,文档中也展示了Java编程中窗口事件处理、界面构建、事件监听、数据...

    数字各种进制的转换

    下面通过Java代码来具体实现一种通用的进制转换算法: ```java public class Conversion { // 实现任意进制之间的转换 public static String convert(int fromBase, int toBase, String input) { Stack<Integer>...

    jzzhq.rar_转换_进制 转换_进制转换

    在编程中,许多语言提供了内置的函数来进行进制转换,比如Python的`bin()`, `oct()`, `hex()`和`int()`函数,以及Java的`Integer.toString(int, int)`和`Integer.parseInt(String, int)`等。了解如何利用这些函数...

    将十进制数N转换为r进制的数(Java)代码

    这种转换在处理计算机中的二进制、八进制、十六进制转换时尤其有用,因为它们是计算机常用的基础进制。 总的来说,理解和掌握将十进制数转换为任意进制的算法对于程序员来说至关重要,尤其是在进行位运算、数据编码...

    Java-C语言进制转换+输出格式

    位移操作是另一种常用的进制转换技术,尤其在处理二进制数据时非常有用。 - **左移操作()**:将一个二进制数的所有位向左移动指定的位数。高位移出的部分丢弃,低位以0填充。 例如:-2左移2位的结果: ``` ...

    自己制作进制转换器

    综上所述,这个程序使用Java和Android SDK编写,实现了基本的数值进制转换功能,通过用户界面交互,提供便捷的十进制到二、八、十六进制的转换服务,并通过不同的颜色标识转换结果。这个项目对于初学者来说是一个很...

    大数进制转换工具 for mac

    标题中的“大数进制转换工具 for mac”指的是一个专为Mac操作系统设计的应用程序,用于进行大数值的进制转换。在计算机科学中,大数处理是指处理超过标准整型或浮点型数据范围的数值,这对于加密算法、数学计算以及...

    java串口通讯 短信测试 comm编程 PDU编码 进制转换 AT命令

    13751069146 Saro Modem 短信测试.txt Java Comm API编程指南.doc Javax.comm简介.doc ...常见的进制转换方法.doc 浅谈Java串行端口技术协议.doc 短信 AT 命令参考.doc 短信PDU编码解码.doc 通过串口收发短消息.doc

    计算机常用进制及相互转换.txt

    进位制的信息基本都在这了 我整理的也不是很容易 给个双击 下载支持 谢谢大家

    java 进制转换

    本文将深入探讨如何在Java中进行进制转换,以满足实际开发需求。 首先,我们来看一下基本的进制概念。进制是表示数字的系统,通常包括二进制(base 2)、八进制(base 8)、十进制(base 10)和十六进制(base 16)...

Global site tag (gtag.js) - Google Analytics