10进制和16进制互转
来源:互联网 发布:js表单验证 编辑:程序博客网 时间:2024/05/04 14:15
证书的序列号一般都是16进制,公司显示的是10进制,有人问怎么看,也做了一个记录:
/**
* 16进制转换为10进制
* @param hex
* @return
*/
public static final String hexToDecString(String hex) {
hex=replaceBlank(hex);
BigInteger bg=new BigInteger(hex,16);
return bg.toString(10);
}
/**
* 10进制转为16进制
* @param dec
* @return
*/
public static final String decTohexString(String dec) {
BigInteger bg=new BigInteger(dec,10);
return bg.toString(16);
}
还有经常看到的中文编码基本也是16进制表示的,例如gb2312中有一段:
可以将16进制转为byte[] 再将byte[]转化中文:
比如获取 "传":B4AB
/**
* 把16进制字符串转换成字节数组
* @param hex
* @return
*/
public static byte[] hexStringToByte(String hex) {
int len = (hex.length() / 2);
byte[] result = new byte[len];
char[] achar = hex.toCharArray();
for (int i = 0; i < len; i++) {
int pos = i * 2;
result[i] = (byte) (toByte(achar[pos]) << 4 | toByte(achar[pos + 1]));
}
return result;
}
private static byte toByte(char c) {
byte b = (byte) "0123456789ABCDEF".indexOf(c);
return b;
}
测试代码:
String s="B4AB";
byte[] b=StringUtil.hexStringToByte(s);
System.out.println(new String(b));
想知道中文的16进制编码是啥反过来就好了。
另外在网上看到有个题目:计算:1234567891011121314151617181920*2019181716151413121110987654321,用:
BigInteger i = new BigInteger("1234567891011121314151617181920");
BigInteger j = new BigInteger("2019181716151413121110987654321");
BigInteger result = i.multiply(j);
System.out.println(result.toString());
显示的结果跟大牛的不一样,这个问题还是留给大牛门去伤脑经了
- 10进制和16进制互转
- 16进制和2进制互转 16进制和10进制互转
- 16进制和2进制互转
- 10进制和64进制互转
- 10进制和26进制互转
- 16进制和10进制
- 关于2进制和16进制互转的一点思索
- 两种方法实现10进制和62进制互转
- 两种方法实现10进制和62进制互转
- 两种方法实现10进制和62进制互转
- python 16进制和10进制转换
- python 16进制和10进制转换
- 10进制和16进制的简单互换
- 16进制和10进制转换
- 10进制转2进制和16进制
- 进制转换16-8-2-10和查表法
- 二进制、10进制、16进制整数和字符串转换
- 10进制数和16进制字符串 相互转换
- d3d错误
- 【无定根朱刘算法】hdu 3072
- Flex StyleManager.getStyleDeclaration 解决办法
- 秋天的况味
- /usr/local/php-5.2.14/sbin/php-fpm start Starting php_fpm –fpm-config
- 10进制和16进制互转
- 运用HINT提高SQL语句的执行效率
- VS2008编译出的程序在另一台机器上无法运行的问题
- 数据仓库建设持续改进数据质量
- C-简单的算法时间测试
- 数据质量体系结构介绍
- 理解网络交换机的原理
- HP大中华区总裁孙振耀退休感言
- MIDP 2.0安全机制 与 MIDlet 数字签名