前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java 进制转换工具类

Java 进制转换工具类

作者头像
DencyCheng
发布2018-11-05 16:14:55
1.3K0
发布2018-11-05 16:14:55
举报
文章被收录于专栏:SpringBootSpringBoot

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

/**
 * 进制转换工具类
 * @author dell
 *
 */
public class HexadecimalUtil {
	
	/**
	 * 获得倒序二进制数据
	 * @param hexString
	 * @return
	 */
	public static String hexString2binaryString(String hexString) {
		if (hexString == null || hexString.length() % 2 != 0)
			return null;
		String bString = "", tmp;
		for (int i = 0; i < hexString.length(); i++) {
			tmp = "0000" + Integer.toBinaryString(Integer.parseInt(hexString.substring(i, i + 1), 16));
			bString += tmp.substring(tmp.length() - 4);
		}
		return reverseOrder(bString);
	}

	/**
	 * 将数据部分拆分成二进制
	 * @param bytes
	 * @param begin
	 * @param end
	 * @return
	 */
	public static String bytesToHex(byte[] bytes, int begin, int end) {
		StringBuilder hexBuilder = new StringBuilder(2 * (end - begin));
		for (int i = begin; i < end; i++) {
			hexBuilder.append(Character.forDigit((bytes[i] & 0xF0) >> 4, 16)); // 转化高四位
			hexBuilder.append(Character.forDigit((bytes[i] & 0x0F), 16)); // 转化低四位
			hexBuilder.append(' '); // 加一个空格将每个字节分隔开
		}
		return hexBuilder.toString().toUpperCase();
	}
	
	/**
	 * 接受数据 00 0A 4B 55
	 * 返回00001010 00001010 数组
	 * @param data
	 * @return
	 */
	public static String[] getDate(String data) {
		String[] datas = data.split(" ");
		String[] returnDatas = new String[50];
		for (int i = 0; i < datas.length; i++) {
			returnDatas[i] = hexString2binaryString(datas[i]);
		}
		return returnDatas;
	}
	
	/**
	 * 十六进制转十进制
	 * @param num
	 * @return
	 */
	public static Integer get10HexNum(String num){
		return Integer.parseInt(num.substring(0),16);
	}
	

	/**
	 * 倒序字符串
	 * @param old
	 * @return
	 */
	public static String reverseOrder(String old){
		return new StringBuffer(old).reverse().toString();
	} 
	
	public static void main(String arg[]) {
		/*String hexString = "0A AA 3B";
		System.out.println(hexString2binaryString(hexString));
		String[] r = getDate(hexString);
		System.out.println(r);
		System.out.println(reverseOrder("00111111"));*/
		String hex = "BBCC";
		Integer x = Integer.parseInt(hex.substring(0),16);//从第2个字符开始截取
		System.out.println(x);
	}
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年09月14日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档