- 浏览: 327529 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (262)
- Java (20)
- 设计模式 (16)
- Oracle (13)
- Struts (1)
- 问题解决 (9)
- ibatis (2)
- Maven (5)
- Git (2)
- 实现原理 (6)
- 敏捷开发 (22)
- Spring (4)
- 算法 (8)
- MySQL (2)
- Java工具箱 (17)
- jQuery (1)
- 英语学习 (8)
- 杂谈 (15)
- 多线程 (15)
- Java解惑 (7)
- Linux (1)
- 重构36计 (6)
- 网络 (4)
- PHP (1)
- Socket (6)
- 面试 (1)
- JVM (14)
- 历史与故事 (5)
- 报表 (4)
- CMS (3)
- Windows (1)
- nginx (5)
- 架构设计 (7)
- RubyOnRails (2)
- Hadoop (8)
- Go (7)
- JS (1)
- Web (1)
- 项目实例 (5)
- ubuntu (4)
最新评论
-
jacking124:
按照你这个配置以后提示这个异常?Exception occur ...
Go语言学习:开发环境搭建及Hello World -
焦志广:
有请看http://jiaozhiguang-126-com. ...
Hadoop白皮书(1):分布式文件系统HDFS简介 -
w156445045:
Hadoop 有没windows环境下的配置呢,
谢谢。非常感 ...
Hadoop白皮书(1):分布式文件系统HDFS简介 -
xiangxm:
学习了。
Java 解惑知多少六 -
焦志广:
xhh_lite 写道怎么少了一个类?恩?不少啊,少那个类啊; ...
易学设计模式四 命令模式(Commond)
10进制转16进制 10转2进制
package com.jiaozg.test; import junit.framework.TestCase; public class Hex extends TestCase{ public void testPositiveIntToHex() { //如果正数小于15时,只输入一位,而不是按我们想像的两位标准十六进制输出显示的,后面解决这个问题 System.out.println(Integer.toHexString(2));//2 System.out.println(Integer.toHexString(15));//f System.out.println(Integer.toHexString(16));//10 System.out.println(Integer.valueOf("F", 16));//15 System.out.println(Integer.toBinaryString(10)); //1010 System.out.println(Integer.toHexString(10)); //a } /* * Integer.valueOf()实质上调用的是Integer.parseInt()来完成的,所以 * Integer.parseInt()与Integer.valueOf()功能是一样的,只是返回值不 * 一样而已 */ public void testNegativeIntToHex() { //负整数时,前面输入了多余的 FF ,没有去掉前面多余的 FF,按并双字节形式输出 System.out.println(Integer.toHexString(-2).toUpperCase());//FFFFFFFE //实质上0xFF会像转换成0x000000FF后再进行位运算 System.out.println(Integer.toHexString(-2 & 0xFF).toUpperCase());//FE System.out.println(Integer.toHexString(-2 & 0x000000FF).toUpperCase());//FE //注,FE输出时不会为-2,因为此时不会把FE看成负数,valueOf会把所有数字串看成正的 System.out.println(Integer.valueOf("FE", 16));//254 //如果要输出-2,只能按以下形式输出 System.out.println(Integer.valueOf("-2", 16));//-2 //所以要把 FE 看成负的话,只能在前面加上负号,但是这里输出还不是-2, //而是先计算Integer.valueOf("FE", 16),再在结果前加上负 System.out.println(Integer.valueOf("-FE", 16));//-254 /* 所以如果要输入某个负数,我们只能先求出该数的绝对值的原码十六进制,再在前面加上负号, * 例如求表示-128,则先对绝对值128求十六进制 80,再在前面加上负号 -80 */ System.out.println(Integer.valueOf("-80", 16));//-128 /* 为什么说valueOf把所有数字串看成正的呢?请看下面三行代码,因为最大正数为2147483647, * 如果再 在7fffffff基础上加上一个一,运行肯定会出错误(这与直接输出0x80000000不一样), * 那么就可以证明 */ System.out.println(Integer.valueOf("7fffffff", 16));//2147483647 //此句运行时会报错,因为最大正数为7fffffff,但如 -80000000 却又可以运行,因为没超出整数范围 //System.out.println(Integer.valueOf("80000000", 16));//不能运行,已注掉 System.out.println(Integer.valueOf("-80000000", 16));//-2147483648 /* 注,输出时不是负数,而是正,因为0xFE只有8位,而整数是32位,所以以int形式出现时前 * 面会自动补24个零,第一位是零,所以最后是正数 */ System.out.println(0xFE);//254 System.out.println(-0xFE);//-254 //但0x80000000已满,无需补,第一位为一,所以最后为负数 System.out.println(0x80000000);//-2147483648 } public void testNegativeIntToBin() { System.out.println(Integer.toBinaryString(-2));//11111111111111111111111111111110 //实质上0xFF会像转换成0x000000FF后再进行位运算 System.out.println(Integer.toBinaryString(-2 & 0xFF));//11111110 System.out.println(Integer.toBinaryString(-2 & 0x000000FF));//11111110 //与上面十六进制是一样的 System.out.println(Integer.valueOf("1111111111111111111111111111111", 2));//2147483647 //下面语句运行会出错,已注掉 //System.out.println(Integer.valueOf("10000000000000000000000000000000", 2)); System.out.println(Integer.valueOf("-10000000000000000000000000000000", 2));//-2147483648 System.out.println(Integer.valueOf("11111110", 2));//254 System.out.println(Integer.valueOf("-11111110", 2));//-254 /* 注,Java中没有直接使用二进制表示一个数(目前只支持八与十六进制直接表示法),下面其实是一个 * 八进制的数与十进制的数 */ System.out.println(010);//8 8进制 System.out.println(10);//10 10进制 System.out.println(0x10);//16 16进制 } public void testByteToHex() { byte negativeByte = -2; byte positiveByte = 2; /* toHexString方法类型为int型,所以转Hex前参数会提升成整型后再进行转换,过程如下: * 10000010(原码)->11111110(补码)->11111111 11111111 11111111 11111110(提升) * ->FFFFFFFE(转Hex进制输出) */ System.out.println(Integer.toHexString(negativeByte).toUpperCase());// FFFFFFFE /* 第一步把-2转成整型: * 10000010(原码)->11111110(补码)->11111111 11111111 11111111 11111110(转整型) * 第二步把 0xFF 前补24个零: * 00000000 00000000 00000000 11111111 * 第三步:把第一二步结果进行与位运算: * 00000000 00000000 00000000 11111110 * 最后一步:转十六进制结果为 FE */ System.out.println(Integer.toHexString(negativeByte & 0xFF).toUpperCase());// FE //另一种转换,可以针对负数与正数的byte都可以以完整的单字节输出 System.out.println(Integer.toHexString((negativeByte & 0x000000ff) | 0xffffff00) .substring(6).toUpperCase());//FE System.out.println(Integer.toHexString((positiveByte & 0x000000ff) | 0xffffff00) .substring(6).toUpperCase());//02 } /** * 位运算与算术运行中的类型提升机制是一样的 */ public void testBiteMathematical() { System.out.println(0x8000000000000000L);//-9223372036854775808 System.out.println((int) 0x8000000000000000L);//0 System.out.println(0x8000000000000010L);//-9223372036854775792 System.out.println(0x80000000);//-2147483648 System.out.println(0x80000010);//-2147483632 //0x00000010提升成长整型,最后结果为长整型0x8000000000000010L System.out.println(0x00000010 | 0x8000000000000000L);//-9223372036854775792 //0x0010提升成整形,最后结果为整型0x80000010 System.out.println(0x0010 | 0x80000000);//-2147483632 } }
发表评论
-
Easy Explorer 插件安装 下载
2015-02-06 10:37 1637Easy Explorer是一个Eclipse插件,主要用于快 ... -
位运算
2012-11-15 10:48 795一、位运算符C语言提供了六种位运算符: & 按位与 ... -
Java API Design Guidelines
2012-11-14 20:00 1055ref:http://www.artima.com/weblo ... -
代码的味道
2012-11-17 18:50 764什么时候需要Refactoring? ... -
如何提高代码质量三 可变更性
2012-11-11 14:21 1085c. 适配器模式 我 ... -
如何提高代码质量二 可维护性
2012-11-11 14:21 15992. 可维护性 软件的 ... -
如何提高代码质量一 可读性
2012-11-11 14:21 1063高质量代码的三要素 ... -
生成Myeclipse的注册码
2012-10-17 11:30 0public class MyEclipseGen { ... -
总结一下 Spring的IOC、DI
2012-10-14 21:16 950国庆节刚过,应一些朋 ... -
位运算符在Java编码中的两个应用
2012-10-03 22:27 1067位运算符用于处理整型 ... -
java关键字——strictfp
2012-10-01 10:30 898strictfp, 即 strict float point ... -
Java 异常处理
2012-09-21 16:06 1236为什么要在J2EE项目中谈异常处理呢?可能许多java初学者 ... -
String,StringBuffer与StringBuilder的区别
2012-09-18 18:03 607String 字符串常量 StringBuffer字符串变量( ... -
Java NIO缓冲区内部实现机制
2012-09-17 14:03 870缓冲区内部实现 ... -
Java NIO核心概念及基本读写
2012-09-15 23:30 16531. 引言 I/O流或者输入/输出流指的是计算机 ... -
Java中十个常见的违规编码
2012-09-12 12:43 732最近,我给Java项目做了 ... -
Java 基本数据类型及运算
2012-09-10 22:09 751基本数据类型 int n = 7, m = ... -
System.arraycopy方法的使用
2012-09-09 22:08 969package com.jiaozg.test; i ... -
Java 泛型学习
2012-09-05 13:50 829Java泛型由来的动机 理解Java泛型最简单的方法是把它看成 ... -
Java 反射例子
2012-08-28 18:04 784Java语言允许通过程序化的方式间接对Class进行操作,Cl ...
相关推荐
java 进制转换工具类 java 进制转换工具类java 进制转换工具类 java 进制转换工具类java 进制转换工具类 java 进制转换工具类
二进制数组转换为二进制字符串 将二进制数组转换为十六进制字符串 将十六进制转换为二进制字节数组 将十六进制转换为二进制字符串
运行这段代码,你会看到不同的进制转换结果,从而加深对Java进制转换的理解。 在实际开发中,进制转换被广泛应用于数据编码、网络通信、内存表示等方面。例如,在网络编程中,IP地址通常以点分十进制形式表示,但在...
Java进制转换 正整数的十进制转换二进制 将一个十进制数除以二,得到的商再除以二,依此类推直到商等于一或零时为止,倒取除得的余数,即换算为二进制数的结果。只需记住要点:除二取余,倒序排列。 由于计算机...
**JAVA 进制转换工具V1.0** 在计算机科学中,进制转换是一项基本而重要的概念,它涉及将一个数值从一种数制转换到另一种数制。此JAVA开发的进制转换工具V1.0提供了便捷的方式,帮助用户进行二进制、八进制、十进制...
### Java 进制转换知识点详解 #### 一、概述 在计算机科学中,不同进制之间的转换是一项基本技能。Java 提供了一系列内置方法来帮助开发者实现不同进制间的转换,如二进制(base-2)、八进制(base-8)、十进制...
Java实现的进制转换工具类完整示例 Java实现的进制转换工具类是Java语言中的一种常用工具类,用于实现各种进制之间的转换操作,如二进制、十六进制、字符串、数组等。该工具类主要提供了将字节数组转换为十六进制...
一个用java写的进制转换器,有图形界面。 主要是调用java的lang类进行转换。
设计一个java程序。输入一个十进制数转,将其换成二进制、八进制和十六进制。
一、利用Integer将十进制的数进行进制转换 方法 十进制转换其他进制 使用方法 返回值 10进制转2进制 Integer.toBinaryString(n) 一个二进制字符串 10进制转8进制 Integer.toOctalString(n) 一个八进制字符...
本程展示如何使用Java中Swing程序来设计进制转换器,实现十进制到二进制,八进制,十六进制的转换。
在Java编程语言中,进制转换是处理数字和字符串数据时的一个常见需求。无论是将十进制数转换为二进制、八进制或十六进制,还是反之,Java提供了丰富的API来支持这些操作。本文将详细介绍Java中进行进制转换的各种...
在编程领域,尤其是在Java语言中,进制转换是一项基本的操作,因为不同的进制系统在不同的场景下有不同的应用。CPU通常使用二进制处理数据,而人类更习惯于十进制,程序员尤其是底层开发者则常使用十六进制。八进制...
Java进制转换是编程中的基础概念,特别是在软件开发中,理解和掌握不同进制之间的转换至关重要。这个PDF文档可能是一个简单的Java程序示例,用于演示如何将一个任意进制的数转换为其他进制。让我们详细解析一下这个...
在Java编程语言中,进制转换是常见的操作,特别是在处理数据表示、编码或者解析用户输入时。Java提供了内置的方法来方便地在不同进制之间进行转换,主要包括十进制、二进制、八进制和十六进制。下面将详细阐述这些...
Java还提供了`Format`类和`DecimalFormat`类,可以用于更复杂的进制转换。例如,你可以创建一个格式对象,指定源和目标进制,然后进行转换。 6. **位运算符辅助转换** 除了上述方法,还可以利用位运算符进行进制...
本篇文章将深入探讨Java中的进制转换方法,包括从十进制转换到其他进制,以及从其他进制转换回十进制。 1. **十进制转十六进制**: 使用`Integer.toHexString(int i)`方法可以将一个十进制整数转换为十六进制字符...