HexDump.java解析,android 16进制转换
HexDump.java解析android 16进制转换
package com.android.internal.util; public class HexDump
{
private final static char[] HEX_DIGITS = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };//十六进制的组成元素 public static String dumpHexString(byte[] array)
{
return dumpHexString(array, 0, array.length);
} public static String dumpHexString(byte[] array, int offset, int length)
{
StringBuilder result = new StringBuilder(); byte[] line = new byte[16];
int lineIndex = 0; result.append("\n0x");
result.append(toHexString(offset)); for (int i = offset ; i < offset + length ; i++)
{
if (lineIndex == 16)
{
result.append(" "); for (int j = 0 ; j < 16 ; j++)
{
if (line[j] > ' ' && line[j] < '~')
{
result.append(new String(line, j, 1));
}
else
{
result.append(".");
}
} result.append("\n0x");
result.append(toHexString(i));
lineIndex = 0;
} byte b = array[i];
result.append(" ");
result.append(HEX_DIGITS[(b >>> 4) & 0x0F]);
result.append(HEX_DIGITS[b & 0x0F]); line[lineIndex++] = b;
} if (lineIndex != 16)
{
int count = (16 - lineIndex) * 3;
count++;
for (int i = 0 ; i < count ; i++)
{
result.append(" ");
} for (int i = 0 ; i < lineIndex ; i++)
{
if (line[i] > ' ' && line[i] < '~')
{
result.append(new String(line, i, 1));
}
else
{
result.append(".");
}
}
} return result.toString();
} public static String toHexString(byte b)
{
return toHexString(toByteArray(b));
} public static String toHexString(byte[] array)
{
return toHexString(array, 0, array.length);
} public static String toHexString(byte[] array, int offset, int length)
{
char[] buf = new char[length * 2]; int bufIndex = 0;
for (int i = offset ; i < offset + length; i++)
{
byte b = array[i];
buf[bufIndex++] = HEX_DIGITS[(b >>> 4) & 0x0F];
buf[bufIndex++] = HEX_DIGITS[b & 0x0F];
} return new String(buf);
} public static String toHexString(int i)
{
return toHexString(toByteArray(i));
} public static byte[] toByteArray(byte b)
{
byte[] array = new byte[1];
array[0] = b;
return array;
} public static byte[] toByteArray(int i)
{
byte[] array = new byte[4]; array[3] = (byte)(i & 0xFF);
array[2] = (byte)((i >> 8) & 0xFF);
array[1] = (byte)((i >> 16) & 0xFF);
array[0] = (byte)((i >> 24) & 0xFF); return array;
} private static int toByte(char c)
{
if (c >= '0' && c <= '9') return (c - '0');
if (c >= 'A' && c <= 'F') return (c - 'A' + 10);
if (c >= 'a' && c <= 'f') return (c - 'a' + 10); throw new RuntimeException ("Invalid hex char '" + c + "'");
} public static byte[] hexStringToByteArray(String hexString)
{
int length = hexString.length();
byte[] buffer = new byte[length / 2]; for (int i = 0 ; i < length ; i += 2)
{
buffer[i / 2] = (byte)((toByte(hexString.charAt(i)) << 4) | toByte(hexString.charAt(i+1)));
} return buffer;
}
}
HexDump.java解析,android 16进制转换的更多相关文章
- java中16进制转换10进制
		java中16进制转换10进制 public static void main(String[] args) { String str = "04e1"; String myStr ... 
- jstack:将Process Explorer中看到的进程ID做16进制转换,到ThreadDump中加上0x 前缀即能找到对应线程(转)
		原文链接:http://www.iteye.com/topic/1133941 症状: 使用Eclipse win 64位版本,indigo及kepler都重现了,使用tomcat 6.0.39,jd ... 
- Java字符串转16 进制工具类Hex.java
		Java字符串转16 进制工具类Hex.java 学习了:https://blog.csdn.net/jia635/article/details/56678086 package com.strin ... 
- C# 中关于汉字与16进制转换的代码
		/// <summary> /// 从汉字转换到16进制 /// </summary> /// <param name="s"></par ... 
- 颜色转换、随机、16进制转换、HSV
		颜色转换.随机.16进制转换.HSV: /** * * *-----------------------------------------* * | *** 颜色转换.随机.16进制转换.HSV * ... 
- java byte 16进制转换
		整型转16进制: int devIdInt = Integer.parseInt(devId);String devIdString = Integer.toHexString(devIdInt); ... 
- java中Integer包装类的具体解说(java二进制操作,全部进制转换)
		程序猿都非常懒,你懂的! 今天为大家分享的是Integer这个包装类.在现实开发中,我们往往须要操作Integer,或者各种进制的转换等等.我今天就为大家具体解说一下Integer的使用吧.看代码: ... 
- SQL SERVER 自定义函数 整数转成指定长度的16进制 转换成指定长度的16进制 不足补0
		最近做项目扩展的时候,遇到问题就是将整型转换成指定长度的16进制 刚开始就是直接使用 cast(12 as varbinary(4))但是发现这个不能解决我的问题 所以就上网搜了一下,然后改了改,下面 ... 
- [原创]K8飞刀20160613 Plesk密码 & 注册表16进制转换 & Html实体解密
		K8飞刀 by K8拉登哥哥@[K8搞基大队]博客: http://qqhack8.blog.163.com 简介: K8飞刀是一款多功能的安全测试工具. Hacker Swiss Army Kni ... 
随机推荐
- HDU-1011 Starship Troopers(树形dp)
			Starship Troopers Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ... 
- Oracle性能优化之普通用户使用dbms_xplan包需要有的权限
			普通用户使用dbms_xplan包查看执行计划需要对v$sql.v$sql_plan.v$session及v$sql_plan_statistics_all这四个视图同时具有select权限. 如果普 ... 
- How to disable a plugin when Jenkins is down?
			===(different .jpi and bak and restore it )=== A plugin is preventing Jenkins to restart Environment ... 
- 解决下载的CHM文件无法显示网页问题
			问题症状:打开CHM文件,左边目录齐全,可右边边框里却是无法显示网页. 解决方法:方法一:修改注册表1)新建一个文本文件2)添加如下内容:REGEDIT4[HKEY_LOCAL_MACHINE\SOF ... 
- 看病要排队--hdu1873
			题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1873 运用优先队列写就行了 #include<stdio.h> #include< ... 
- Roadblocks--poj3255(次短路)
			题目链接 求次短路的问题: dist[i][0]和dist[i][1]表示从起点1到i的距离和从起点n到i的距离: 次短路要比最短路大但小于其他路: 每条路1--n的距离都可以用dist[i][0] ... 
- 2015 湘潭大学程序设计比赛(Internet)--E题--烦人的异或
			烦人的异或 Accepted : 27 Submit : 102 Time Limit : 5000 MS Memory Limit : 65536 KB 题目描述 如下图,有一N*M的表格, ... 
- 1分钟了解协同过滤,pm都懂了
			版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/z50L2O08e2u4afToR9A/article/details/79565720 projec ... 
- vue中使用better-scroll实现滑动效果
			1.安装:npm install better-scroll 2.引入:import BetterScrol from "better-scroll"; 1.滚动效果 better ... 
- (转)FastDFS文件存储
			一.FastDFS介绍 FastDFS开源地址:https://github.com/happyfish100 参考:分布式文件系统FastDFS设计原理 参考:FastDFS分布式文件系统 个人封装 ... 
