Java 十进制和十六制之间的转化(负数的处理)___http://www.cnblogs.com/literoad/archive/2013/01/25/2875908.html
来源:互联网 发布:为什么网络是脆弱的 编辑:程序博客网 时间:2024/06/09 16:18
在一些情况下,我们需要将数字在十进制和十六制下互相转化。
在Java中将十进制转化成十六进制非常的简单。
int var = 324;
String hex = Integer.toHexString(var);long lvar = 3243143432134L;
String lhex = Long.toHexString(lvar);
这样就可以得16进制的字符串了。当要从十六进制转化成十进制的时候也很方便:
Integer.parseInt(hex, 16);Long.parseLong(hex, 16);
当int和long变量的值都是正数的时候,这样做一点问题都没问题,但当int和long变量的值为负数的时候,问题就出现了:
int var = -23243;
String hex = Integer.toHexString(var);Integer.parseInt(hex, 16);
这时会报出Exception:
Exception in thread "main" java.lang.NumberFormatException: For input string: "ffffa535"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:459)
at demo.Main.main(Main.java:10)
这是为什么呢? 问题就在于Integer.parseInteger的时候,会将传入十六进制数字一致认为成正数,所以这时候表示负数的十六进制字符串所表示的数字就超出了Integer所能表示的数字范围,所以会报出NumberFormatException, 同时的问题也会现在Long.parseLong身上。
那么如何才解决这个问题呢?这时候的解决方案就是BigInteger.
BigInteger bi = new BigInteger(hex, 16);
通过BigInteger.intValue();和 BigInteger.longValue(); 得到你所需要的int或long型值。
0 0
- Java 十进制和十六制之间的转化(负数的处理)___http://www.cnblogs.com/literoad/archive/2013/01/25/2875908.html
- Java 十进制和十六制之间的转化(负数的处理)
- Java 十进制和十六制之间的转化(负数的处理)
- _exit和exit的区别 http://www.cnblogs.com/hnrainll/archive/2011/08/17/2142001.html
- vector的reserve和resize http://www.cnblogs.com/qlee/archive/2011/05/16/2048026.html
- Java中getResourceAsStream的用法(转自:http://www.cnblogs.com/javayuer/archive/2011/01/02/1924192.html)
- socket TCP和UDP的区别对比http://www.cnblogs.com/zengqinglei/archive/2013/04/27/3046119.html
- 小白谈memcache和memcached的区别(转自:http://www.cnblogs.com/scotoma/archive/2011/02/15/1955573.html)
- 一步一步打造自己的编译器http://www.cnblogs.com/sukyboor/archive/2007/01/11/617406.html
- setsockopt中参数之SO_REUSEADDR的意义(转) http://www.cnblogs.com/qq78292959/archive/2013/01/18/2865926.html
- xm create的过程 (转自http://www.cnblogs.com/feisky/archive/2012/01/17/2325018.html)
- Socket网络编程(http://www.cnblogs.com/hellojava/archive/2013/01/25/2861127.html)
- Matlab 文件操作(转载http://www.cnblogs.com/longdouhzt/archive/2013/01/29/2881749.html)
- .NET 异步处理(转载自 http://www.cnblogs.com/czy/archive/2010/01/14/1648139.html)
- gcc和g++的区别(很详细的描述) http://www.cnblogs.com/joeblackzqq/archive/2011/04/13/2014404.html
- 一些在JAVA中获得文件夹路径的方法http://www.cnblogs.com/lostyue/archive/2011/06/27/2091686.html
- 组织和遍历TreeView里面的数据 http://www.cnblogs.com/aspnetx/archive/2007/09/18/897083.html
- uri和url的定义及关系 http://www.cnblogs.com/skylaugh/archive/2007/03/30/693750.html
- Lnmp中nginx经常出现502错误解决方法
- FPGA入门的基础知识
- JSON 之FastJson解析
- Android开发一些实用的类、方法及接口(新手向)
- Eclipse Maven Jetty集成
- Java 十进制和十六制之间的转化(负数的处理)___http://www.cnblogs.com/literoad/archive/2013/01/25/2875908.html
- 基于DSP的实时图像处理系统
- 线程池的原理及实现
- 代码呀代码
- 安卓简单开发-几种dialog创建和使用
- 为 VR 优化 UE 4 渲染器
- Android开源项目第一篇——个性化控件(View)篇
- <<离散数学>>关系
- 对长字符串进行省略加...