Java十六进制与十进制间相互转换
来源:互联网 发布:物联传感 知乎 编辑:程序博客网 时间:2024/05/16 16:13
1、10进制转16进制,运用辗转相除法,取余数补对应的位数,直到相除结果为0。
2、16进制转10进制,对16进制数的每一位数乘以其对应的16的幂,相加。
函数代码如下:
//10进制转16进制public static String IntToHex(int n){char[] ch = new char[20];int nIndex = 0;while ( true ){int m = n/16;int k = n%16;if ( k == 15 )ch[nIndex] = 'F';else if ( k == 14 )ch[nIndex] = 'E';else if ( k == 13 )ch[nIndex] = 'D';else if ( k == 12 )ch[nIndex] = 'C';else if ( k == 11 )ch[nIndex] = 'B';else if ( k == 10 )ch[nIndex] = 'A';else ch[nIndex] = (char)('0' + k);nIndex++;if ( m == 0 )break;n = m;}StringBuffer sb = new StringBuffer();sb.append(ch, 0, nIndex);sb.reverse();String strHex = new String("0x");strHex += sb.toString();return strHex;}//16进制转10进制public static int HexToInt(String strHex){int nResult = 0;if ( !IsHex(strHex) )return nResult;String str = strHex.toUpperCase();if ( str.length() > 2 ){if ( str.charAt(0) == '0' && str.charAt(1) == 'X' ){str = str.substring(2);}}int nLen = str.length();for ( int i=0; i<nLen; ++i ){char ch = str.charAt(nLen-i-1);try {nResult += (GetHex(ch)*GetPower(16, i));} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}return nResult;}//计算16进制对应的数值public static int GetHex(char ch) throws Exception{if ( ch>='0' && ch<='9' )return (int)(ch-'0');if ( ch>='a' && ch<='f' )return (int)(ch-'a'+10);if ( ch>='A' && ch<='F' )return (int)(ch-'A'+10);throw new Exception("error param");}//计算幂public static int GetPower(int nValue, int nCount) throws Exception{if ( nCount <0 )throw new Exception("nCount can't small than 1!");if ( nCount == 0 )return 1;int nSum = 1;for ( int i=0; i<nCount; ++i ){nSum = nSum*nValue;}return nSum;}//判断是否是16进制数public static boolean IsHex(String strHex){int i = 0;if ( strHex.length() > 2 ){if ( strHex.charAt(0) == '0' && (strHex.charAt(1) == 'X' || strHex.charAt(1) == 'x') ){i = 2;}}for ( ; i<strHex.length(); ++i ){char ch = strHex.charAt(i);if ( (ch>='0' && ch<='9') || (ch>='A' && ch<='F') || (ch>='a' && ch<='f') )continue;return false;}return true;}
0 0
- Java十六进制与十进制间相互转换
- 十进制与十六进制相互转换
- [JAVA]二进制,八进制,十六进制,十进制间进行相互转换
- [JAVA]二进制,八进制,十六进制,十进制间进行相互转换
- [JAVA]二进制,八进制,十六进制,十进制间进行相互转换
- java 二进制,八进制,十六进制,十进制间进行相互转换
- [JAVA]二进制,八进制,十六进制,十进制间进行相互转换
- [JAVA]二进制,八进制,十六进制,十进制间进行相互转换
- [JAVA]二进制,八进制,十六进制,十进制间进行相互转换
- [JAVA]二进制,八进制,十六进制,十进制间进行相互转换
- [JAVA]二进制,八进制,十六进制,十进制间进行相互转换
- [JAVA]二进制,八进制,十六进制,十进制间进行相互转换
- [JAVA]二进制,八进制,十六进制,十进制间进行相互转换
- [JAVA]二进制,八进制,十六进制,十进制间进行相互转换
- [JAVA]二进制,八进制,十六进制,十进制间进行相互转换 .
- java 二进制,八进制,十进制,十六进制间相互转换的方法
- [JAVA]二进制,八进制,十六进制,十进制间进行相互转换
- [JAVA]二进制,八进制,十六进制,十进制间进行相互转换
- 分水岭算法
- 关键字@synthesize 和@property
- Designing a Remote Interface
- Node.js开发入门—Express安装与使用
- Ubuntu14.04用PPTP搭建VPN
- Java十六进制与十进制间相互转换
- spark core源码分析12 spark缓存清理
- QtitanRibbon:最佳Qt类跨平台Ribbon UI组件
- spring MVC ajax 简单应用
- HttpURLConnection 直接发送soap消息调用webservice
- 连续二次按返回退出应用程序(多次按Toast一直长时间显示问题处理)
- LVM操作案例
- Android 点击textview数字跳转到拨打电话界面
- Git 安装 - 生成ssh keys