使用AS3输出ByteArray为16进制
package
{
import flash.utils.ByteArray;
/**
* 输出ByteArray为16进制
* @author Rise
*/
public class Byte2Hex
{
public static function Trace(bytes:ByteArray):void
{
if (bytes == null)
{
trace("bytes is null");
return;
}
var length:int = getHexLen(bytes.length);
length = length > 4 ? length : 4;
trace(getTitle(length));
bytes.position = 0;
for (var j:int = 0; bytes.bytesAvailable > 0; j += 16)
{
var line:String = fillHexLen(j, length) + " ";
var str:String = "";
for (var i:int = 0; i < 16; i++)
{
if (bytes.bytesAvailable > 0)
{
var char:int = bytes.readByte() & 0xFF;
line += fillHexLen(char, 2) + " ";
str += String.fromCharCode(char);
}
else
{
line += ".. ";
}
}
trace(line, "\t", str);
}
} private static function fillHexLen(num:int, length:int):String
{
var str:String = num.toString(16);
var zeros:String = "";
for (var i:int = 0; i < length - str.length; i++)
{
zeros += "0";
} return zeros + str;
} private static function getHexLen(length:int):int
{
var bit:int = 0x0F;
for (var i:int = 1; i <= 8; i++)
{
bit = bit << i | bit;
if (bit > length)
{
return i;
}
}
return 8;
} private static function getTitle(length:int):String
{
var title:String = "";
for (var i:int = 0; i < length; i++)
{
title += " ";
}
return(title + " 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15");
}
}
}
代码很烂,高手勿喷。
使用方法:
var bytes:ByteArray = new ByteArray;
bytes.endian = Endian.LITTLE_ENDIAN;
bytes.writeMultiByte("ABCDEFGLKAJSFKOIJOIJWELKJLJOI114asdfasdfasdfasdfasdfasdfaf", "utf-8");
bytes.writeInt(100000);
Byte2Hex.Trace(bytes);
Output
4c 4b 4a 4b 4f ABCDEFGLKAJSFKOI
4a 4f 4a 4c 4b 4a 4c 4a 4f JOIJWELKJLJOI114
asdfasdfasdfasdf
a0 .. .. asdfasdfaf
使用AS3输出ByteArray为16进制的更多相关文章
- ByteArray、16进制、字符串之间的转换
ByteArray.16进制.字符串之间的转换: package fengzi.convert { import flash.utils.ByteArray; public class ByteArr ...
- [ACM_模拟] ZOJ 3713 [In 7-bit 特殊输出规则 7bits 16进制]
Very often, especially in programming contests, we treat a sequence of non-whitespace characters as ...
- 基于visual Studio2013解决面试题之1203转16进制输出
题目
- C printf按8进制、10进制、16进制输出以及高位补0
; /*按整型输出,默认右对齐*/ printf("%d\n",PrintVal); /*按整型输出,补齐4位的宽度,补齐位为空格,默认右对齐*/ printf("%4d ...
- Python输出16进制不带0x补零,整数转16进制,字符串转16进制
Python输出16进制不带0x补零,整数转16进制,字符串转16进制 在开发中,我们偶尔会遇到需要将数据通过控制台打印出来,以检查数据传输的准确性.例如调试服务端刚接到的二进制数据(里面包含很多 ...
- Go -- socket read的内容以16进制输出
buf := make([]) reqLen, err := conn.Read(buf) // 遍历, 转为16进制 buffer := new(bytes.Buffer) for _, b := ...
- 16进制ascii码转化为对应的字符,付ipmitool查询硬件信息
最近工作需要在用ipmitool查询服务器硬件信息.ipmitool查询硬件信息 比如电源,使用命令: 获取PSU0信息:Ipmitool raw 0x3a 0x71 0x00: 获取PSU1信息:I ...
- ACM 16进制的简单运算
16进制的简单运算 时间限制:1000 ms | 内存限制:65535 KB 难度:1 描述 现在给你一个16进制的加减法的表达式,要求用8进制输出表达式的结果. 输入 第一行输入一个正整 ...
- SQLSERVER 16进制与10进制转换
最近工控项目中遇到的16进制与10进制转换,在.NET中比较容易实现,在SQLSERVER中发现没有直接的转换,尤其是出现超出范围的long负数,即无符号64位整数在sqlserver中的存储.网上找 ...
随机推荐
- char导致的验证异常
表的一个字段: Moblie char(15) 对应的mvc代码: @Html.EditorFor(c => c.Mobile) [RegularExpression("^1[3|4 ...
- 解决未能加载文件或程序集'WebGrease‘的问题
在多个视图中,如果有使用共用的样式代码,可以把它们移至CSS文件中去.今天Insus.NET就举例一个例子来说明.比如前2篇中<ASP.NET MVC图片管理(上传,预览与显示)>http ...
- 在Android开发中调用Rest web服务(转)
首先从维基百科上拷贝一点Rest的基本概念给大家看看,然后我们再开始详解在Android中如何调用Rest服务.表象化状态转变(英文:Representational State Transfer,简 ...
- TextBox禁止复制粘贴和数字验证,小数验证,汉字验证
验证小数 #region 验证小数 /// <summary> /// 验证小数 /// </summary> /// <param name="sender& ...
- objective-c 宏定义UIAlertController公用方法
IOS的方法经常都有更迭,以前弹出框使用 AlertView,现在使用UIAlertController AlertView的宏定义 #define showMessage(__MESSAGE__) ...
- Lucene(01)
我的博客园博文地址:http://www.cnblogs.com/tenglongwentian/ Lucene,最新版是Lucene6.2.1,匹配的jdk版本是1.8正式版.这里用jdk7最后一版 ...
- 一个bug
bug原因: maven的project重新更新了一下project name,然后在更新过程中,卡死了,就强制退出.结果,就再也进不去eclipse了.看了eclipse的启动日志,各种报错,找不到 ...
- Guava学习笔记:Guava新集合-Table等
Table 当我们需要多个索引的数据结构的时候,通常情况下,我们只能用这种丑陋的Map<FirstName, Map<LastName, Person>>来实现.为此Guava ...
- Node.js包
1.app.js 2.m_p包下package.json 3.index.js 入口模块
- Struts1 中提交中文表单到ActionForm后出现乱码问题的原因及处理方法
问题: 在你所有页面设置的编码都是utf-8的情况下仍然会出现中文乱码现象. 一.乱码出现原因 由于Struts框架直接把表单数据发送给了ActionForm,所以这里面没有对HttpRequestS ...