- 浏览: 317301 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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 1593Easy Explorer是一个Eclipse插件,主要用于快 ... -
位运算
2012-11-15 10:48 755一、位运算符C语言提供了六种位运算符: & 按位与 ... -
Java API Design Guidelines
2012-11-14 20:00 1009ref:http://www.artima.com/weblo ... -
代码的味道
2012-11-17 18:50 733什么时候需要Refactoring? ... -
如何提高代码质量三 可变更性
2012-11-11 14:21 1054c. 适配器模式 我 ... -
如何提高代码质量二 可维护性
2012-11-11 14:21 15612. 可维护性 软件的 ... -
如何提高代码质量一 可读性
2012-11-11 14:21 1025高质量代码的三要素 ... -
生成Myeclipse的注册码
2012-10-17 11:30 0public class MyEclipseGen { ... -
总结一下 Spring的IOC、DI
2012-10-14 21:16 911国庆节刚过,应一些朋 ... -
位运算符在Java编码中的两个应用
2012-10-03 22:27 1027位运算符用于处理整型 ... -
java关键字——strictfp
2012-10-01 10:30 865strictfp, 即 strict float point ... -
Java 异常处理
2012-09-21 16:06 1203为什么要在J2EE项目中谈异常处理呢?可能许多java初学者 ... -
String,StringBuffer与StringBuilder的区别
2012-09-18 18:03 571String 字符串常量 StringBuffer字符串变量( ... -
Java NIO缓冲区内部实现机制
2012-09-17 14:03 836缓冲区内部实现 ... -
Java NIO核心概念及基本读写
2012-09-15 23:30 16271. 引言 I/O流或者输入/输出流指的是计算机 ... -
Java中十个常见的违规编码
2012-09-12 12:43 698最近,我给Java项目做了 ... -
Java 基本数据类型及运算
2012-09-10 22:09 709基本数据类型 int n = 7, m = ... -
System.arraycopy方法的使用
2012-09-09 22:08 931package com.jiaozg.test; i ... -
Java 泛型学习
2012-09-05 13:50 791Java泛型由来的动机 理解Java泛型最简单的方法是把它看成 ... -
Java 反射例子
2012-08-28 18:04 752Java语言允许通过程序化的方式间接对Class进行操作,Cl ...
相关推荐
二进制数组转换为二进制字符串 将二进制数组转换为十六进制字符串 将十六进制转换为二进制字节数组 将十六进制转换为二进制字符串
Java进制转换 正整数的十进制转换二进制 将一个十进制数除以二,得到的商再除以二,依此类推直到商等于一或零时为止,倒取除得的余数,即换算为二进制数的结果。只需记住要点:除二取余,倒序排列。 由于计算机...
一个用java写的进制转换器,有图形界面。 主要是调用java的lang类进行转换。
设计一个java程序。输入一个十进制数转,将其换成二进制、八进制和十六进制。
java进制转换,总结了各种进制之间的转换,很实用!!!
主要介绍了Java实现的进制转换工具类,结合完整实例形式分析了Java实现二进制、十六进制、字符串、数组等相关转换操作技巧,需要的朋友可以参考下
java 进制转换,二进制 十进制 十六进制 正数 负数的进制等等!.docxjava 进制转换,二进制 十进制 十六进制 正数 负数的进制等等!.docx
java进制转换入门
一、利用Integer将十进制的数进行进制转换 方法 十进制转换其他进制 使用方法 返回值 10进制转2进制 Integer.toBinaryString(n) 一个二进制字符串 10进制转8进制 Integer.toOctalString(n) 一个八进制字符...
多个java的进制互相转换,常备不时只需。
本程展示如何使用Java中Swing程序来设计进制转换器,实现十进制到二进制,八进制,十六进制的转换。
很好的Java进制转换文库对Java初学者可能有帮助特别是进制之间的转换
对Java感兴趣的相关人群
JAVA开发,支持任意进制数转,换二进制、八、十、十六进制转换!支持窗口最前显示! 在校期间JAVA开发小软件!
JAVA中用到的进制转换,包括四种进制之间的所有情况.
java进制转换[归纳].pdf
java学习,java各进制转换类,方便使用java开发重利用。
介绍了Java 进制转换的方法,有需要的朋友可以参考一下