【第22期】观点:IT 行业加班,到底有没有价值?

16进制转中文,16进制转数字

原创 2015年07月10日 10:54:51

二话不说 ,直接上代码

import java.math.BigInteger;

public class Util {
/**
 * 16进制转中文(GBK)
 * @param s
 * @return
 */
	public static String hexToStringGBK(String s) {
		byte[] baKeyword = new byte[s.length() / 2];
		for (int i = 0; i < baKeyword.length; i++) {
			try {
				baKeyword[i] = (byte) (0xff & Integer.parseInt(s.substring(i * 2, i * 2 + 2), 16));
			} catch (Exception e) {
				e.printStackTrace();
				return "";
			}
		}
		try {
			s = new String(baKeyword, "GBK");// UTF-16le:Not
		} catch (Exception e1) {
			e1.printStackTrace();
			return "";
		}
		return s;
	}
	
	/**
	 * 16进制转中文(utf-8)
	 * @param s
	 * @return
	 */
	public static String toStringHex(String s) {
		byte[] baKeyword = new byte[s.length() / 2];
		for (int i = 0; i < baKeyword.length; i++) {
			try {
				baKeyword[i] = (byte) (0xff & Integer.parseInt(s.substring(i * 2, i * 2 + 2), 16));
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		try {
			s = new String(baKeyword, "utf-8");// UTF-16le:Not
		} catch (Exception e1) {
			e1.printStackTrace();
		}
		return s;
	}
	
	/**
	 * 高字节在前,低字节在后(先转换)
	 * 例如 9D58B9FE82 首先转换成  82FEB9589D
	 * @param s
	 * @return
	 */
	public static String longToHexString (String s){
		Long c = Long.parseLong(s.substring(0, 8), 16);
		Long res = 0l;
		
		res |= (c & 0x000000ff) << 24;
		res |= (c & 0x0000ff00) << 8;
		res |= (c & 0x00ff0000) >> 8;
		res |= (int)((c & 0xff000000) >> 24);
		
		s = new BigInteger(Long.toHexString(res), 16).toString();
		
		return s;
	}
	
	
	public static void main(String[] args) {
		
	}
}


版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

Python刷题笔记(3)- 16进制和ascii码互转

今天看了下等级标示,原来kyu上面还有dan的等级,升级路漫漫,今天是5kyu题目 题目: Write a module Converter that can take ASCII tex...

中文转16进制(Java用native2ascii命令做unicode编码转换)

[url]http://blog.csdn.net/feng2007110221053/article/details/5799055[/url]
  • ch_dj
  • ch_dj
  • 2013-09-26 10:09
  • 135

C#数字、16进制字符串和字节之间互转

一个字节包含8个二进制位,一个十六进制可表示4个二进制位,所以,一个字节可以由2个十六进制表示总结如下: (1)一个byte 对应两位十六进制位,而不是八位(32位二进制位); (2)转化为十六进...
  • WuLex
  • WuLex
  • 2017-07-19 22:37
  • 84

面试题: 十进制INT数字转化为16进制字符串、实现字符串和数字的相互转化

自己练练了手,写了两个程序: 第一个:十进制的数字转化为16进制 intmain(intargc,_TCHAR*argv[]) { <span

16进制字符串转数字(C/C++,VB/VB.net,C#)

2007年08月15日 13:09:00 这个问题看是很简单,但是在不同语言中实现的方式却千差万别,如果不知道方法,还真是麻烦,我就是在C#中遇到该问题,让我费了很大的周折,才在msdn查到。一...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)