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 ...
随机推荐
- 被included或者被required的文件都来自哪里呢
过PHP,你可以使用不同函数帮助你重用代码.具体用到的函数取决于你打算重用的内容. 主函数如下: * include() and include_once() * require() and requ ...
- eclipse快速向下复制行
Ctrl+Alt+↓ 复制当前行到下一行(复制增加)
- Codeforces 278B Books
好久没有写二分了 题意:有n本书 每本书有一个阅读时间ai 要在t时间内读最多的书 读书的顺序是连续的,如果无法读完一本书就不能开始 最开始觉得会是个dp,但是动规方程写不出来.想想会不会是二分呢,也 ...
- nowcoder2018年全国多校算法寒假训练营练习比赛(第一场)
[气死我了 写完了博客发布 点看来一看怎么只剩下一半不到的内容了!!!!!!!!!!] [就把卡的那两道放上来好了 其余的不弄了 生气!!!!!] 可以说是很久没有打比赛了 今天这一场主要是 基础算 ...
- kdevelop使用笔记
https://www.cnblogs.com/-Mr-y/p/7707176.html#_label7
- 【find -exec】查找并复制文件
find . -name *run_server* -type f -exec cp {} /tmp/ \;
- hash专题学习笔记QAQ
开始说要我给hash写一个专题的时候我是拒绝的,,,我本来想着就把它放到那个考前续命里存个模板就好了 突然想起来之前好像是在蓝书上看到过关于hash的专题?也还有两三道题呢,而且这种思想还是很有意义的 ...
- 字符编码笔记:ASCII,Unicode和UTF-8(转载)
注:我注释的地方有 add by zhj.另Unicode.UTF-8.GB2312查询http://www.2fz1.com/so/ 在python中,a.decode(xxx)就是把str类型的字 ...
- TortoiseGit的使用
TortoiseGit只是一个外壳而已,它调用的是msysgit,相当于msysgit的windows gui而已,如果喜欢用git命令行,那就不需要安装它. 所以要先安装msysgit(window ...
- pycharm中python模板代码自动生成
# -*- coding: utf-8 -*- """ ------------------------------------------------- File Na ...