当我们用到进制转化的 ,很容易想到java Integer 提供的一些方法 (我是百度出来的0.0) 很方便 很快捷。
一下子就转成10进制 转成2进制 ,8进制 ,16进制(先贴出方法吧)
Integer.toBinaryString(15);//把15转成2进制的 Integer.toHexString(15); //把15转成16进制的 Integer.toOctalString(15); //把15转成8进制的
但我们有没有想到这样一个问题 当数据较大的时候 超出了int 的范围的时候 怎么办 (又开始无限百度模式)
哈哈 然后找到以下的帖子 关于字符串的进制转化
ps:(一定先看原帖 把代码跟我的思路对照 才容易知道我说什么 over 。。。。。。算了 直接贴图吧。。。。)
- /**
- * 将十六进制的字符串转换成二进制的字符串
- *
- * @param hexString
- * @return
- */
- public static String hexStrToBinaryStr(String hexString) {
- if (hexString == null || hexString.equals("")) {
- return null;
- }
- StringBuffer sb = new StringBuffer();
- // 将每一个十六进制字符分别转换成一个四位的二进制字符
- for (int i = 0; i < hexString.length(); i++) {
- String indexStr = hexString.substring(i, i + 1);
- String binaryStr = Integer.toBinaryString(Integer.parseInt(indexStr, 16));
- while (binaryStr.length() < 4) {
- binaryStr = "0" + binaryStr;
- }
- sb.append(binaryStr);
- }
- return sb.toString();
- }
他的思路是:
1. 定义一个 字符串对象 sb;
2. 把从键盘输入的字符串 一个个切割 然后 利用我们上面 的第三个函数 转化成 2进制 不足的拼接
3. 输出sb;
扫描二维码关注公众号,回复:
149814 查看本文章
4. 完成