16进制转二进制
来源:互联网 发布:gif图分解软件 编辑:程序博客网 时间:2024/06/11 20:40
题目:一个字符串由两个(个位数或A~F)组成,翻译成二进制数组,如"3A"输出"111010","A3"输出"11110011"
package mytest;import java.util.Stack;/** * 题目:一个字符串由两个(个位数或A~F)组成,翻译成二进制数组,如"3A"输出"111010","A3"输出"11110011" * @author ephuizi * 2013/10/16 */public class BinaryTest{ public static void main(String[] args) {System.out.println("2进制3A:" +getBinaryString("3A") ); System.out.println("2进制A3:" +getBinaryString("A3") ); } /** * 获取正整数的二进制字符串 * @param n 正整数 * @return 二进制字符串 */ static String intToBinaryString(int n){ String binary =""; Stack<Integer> stack = new Stack<>(); if(n<0) return binary; do{ stack.push(n%2); n>>=1; }while(n != 0); int size =stack.size(); while(size++<4) binary +=0; while(stack.size()>0) binary += stack.pop(); return binary; } /** * 将字符0~9转成对应的整型0~9,A~F转成整型10~15 * @param c 字符 * @return 对应的整型 */ static int charToInt(char c){ char chars[] = "0123456789ABCDEF".toCharArray(); int n = 0; for(int i=0; i<chars.length ;i++) if(chars[i]==c) { n=i;break; } return n; } /** * 十六进制字符串转成二进制字符串 * @param s 十六进制字符串 * @return 二进制字符串 */ static String getBinaryString(String s){ char[] chars = s.toCharArray(); s=""; for(int i=0; i<chars.length; i++){ if(i==0) s+=delTopZero(intToBinaryString(charToInt(chars[i]))); else s+=intToBinaryString(charToInt(chars[i])); } return s; } /** * 去掉二进制字符串头部的零 * @param s 二进制字符串 * @return 去零后的字符串 */ static String delTopZero(String s){ char[] chars = s.toCharArray(); int len = chars.length; int i = 0; for(; i<len; i++) if(chars[i]!='0') break; int newLen = len-i; char[] newChars = new char[newLen]; for(int j=0;j<newLen; j++) newChars[j] = chars[i]; return new String(newChars); }}
结果:
- 16进制转二进制
- python2.7实现16进制转二进制数据
- php16进制转二进制流
- 10进制转二进制
- 二进制
- 二进制
- 二进制
- 二进制
- 二进制
- 二进制
- 二进制
- 二进制
- 二进制
- 二进制
- 二进制
- 二进制
- 二进制
- 二进制
- 解决TCP网络传输“粘包”问题
- js特效炫丽选项卡01
- 获取字符串
- taskset
- 合并两个动态数组并排序
- 16进制转二进制
- 一个简单的自定义通信协议(socket)
- 网络上的数据报侦听
- jeecms导入myeclipse问题
- shell编程测试文件类型
- UVa 101 - The Blocks Problem
- Socket中接受tcp数据包,怎么让他receive的时候,就接一个数据包?
- 用java实现数组的循环逐步移位操作
- 利用mkfs.ubifs和ubinize两个工具制作UBI镜像