16进制转2进制的一个类

本文介绍了一个用于将十六进制数值转换为二进制格式的Java类。该类提供了多种转换方法,包括基本转换、带有分隔符的转换及美化格式的转换。此外,还提供了一个示例来展示如何使用这些方法。
package cn.edu.xupt.test;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.math.BigInteger;

public class Hex2Bin {
	private Hex2Bin() {

	}

	/**
	 * 16进制转2进制
	 * @param hexString
	 * @return
	 */
	public static String convert(String hexString) {
		BigInteger decVal = new BigInteger(hexString, 16);
		return decVal.toString(2);
	}

	/*
	 * 16进制转2进制 转换后的结果按每4位一组用指定分隔符分割
	 */
	public static String convert(String hexString, String delimiter) {
		// 获得指定16进制的二进制形式
		String binVal = convert(hexString);

		// 将16进制的2进制形式用分割符分割
		return groupBinString(binVal, delimiter, 4);
	}

	/*
	 * 16进制转2进制 转换后的结果按每4位一组用指定分隔符分割, 并且16进制的0转化后的结果为0000
	 */
	public static String beautifFormatConvert(String hexString, String delimiter) {
		// 获得指定16进制的二进制形式
		String binVal = convert(hexString);

		// 将16进制的0用二进制的0000表示, 得到16进制的二进制表示结果
		int hexLen = hexString.length();
		int binLen = binVal.length();
		int fillLen = 4 * hexLen - binLen;

		StringBuilder sb = new StringBuilder();
		for (int i = 0; i < fillLen; i++) {
			sb.append("0");
		}

		sb.append(binVal);

		// 给结果加入间隔符
		return groupBinString(sb.toString(), delimiter, 4);
	}

	/*
	 * 将16进制转化为2进制后的结果,用指定的分隔符分割
	 */
	public static String groupBinString(String binStr, String delimiter,
			int oneGroupCount) {
		String val = binStr;

		int len = val.length();

		StringBuilder sb = new StringBuilder();

		int remainder = len % oneGroupCount;

		if (remainder != 0) {
			sb.append(val, 0, remainder);

		} else {
			sb.append(val, 0, oneGroupCount);
			remainder = oneGroupCount;
		}

		for (int i = remainder; i < val.length(); i += oneGroupCount) {
			sb.append(delimiter);
			sb.append(val, i, i + oneGroupCount);
		}

		return sb.toString();
	}

	public static void main(String[] args) {
		String str = "09A7B";
		String delimiter = ",";
		
		System.out.println(Hex2Bin.convert(str));
		System.out.println(Hex2Bin.convert(str, delimiter));
		System.out.println(Hex2Bin.beautifFormatConvert(str, delimiter));
	}
}

 

1001101001111011
1001,1010,0111,1011
0000,1001,1010,0111,1011

 

【SCI一区论文复】基于SLSPC系列的高阶PT-WPT无线电能传输系统研究(Matlab代码实现)内容概要:本文围绕“基于SLSPC系列的高阶PT-WPT无线电能传输系统”的研究展开,结合SCI一区论文复现,提供完整的Matlab代码实现方案。研究聚焦于高阶无线电力传输(WPT)系统的建模、优化与仿真,重点探讨SLSPC拓扑结构在提升传输效率、稳定性及抗干扰能力方面的优势。文中涵盖系统建模、参数设计、性能仿真与结果分析等关键环节,突出理论与实践结合,适用于高水平学术研究与工程应用验证。此外,文档附带丰富的科研资源链接,涵盖多个电力系统、优化算法与仿真技术方向,体现其作为综合性科研辅助资料的价值。; 适合人群:具备电力电子、无线能量传输或自动化等相关背景,从事科研工作的研究生、博士生及高校教师,以及希望复现高水平论文成果的工程技术人员。; 使用场景及目标:①用于复现SCI一区论文中关于高阶PT-WPT系统的理论与仿真结果;②为无线电力传输系统的拓扑选型、参数优化与性能评估提供Matlab仿真支持;③辅助开展电力系统、储能优化、智能算法等方向的交叉研究。; 阅读建议:建议结合提供的网盘资源,下载完整代码与案例进行实操验证,重点关注SLSPC系统建模逻辑与仿真参数设置,同时可拓展学习文档中列举的其他Matlab仿真技术内容,以提升综合科研能力。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值