`
dyllove98
  • 浏览: 1382774 次
  • 性别: Icon_minigender_1
  • 来自: 济南
博客专栏
73a48ce3-d397-3b94-9f5d-49eb2ab017ab
Eclipse Rcp/R...
浏览量:38342
4322ac12-0ba9-3ac3-a3cf-b2f587fdfd3f
项目管理checkList...
浏览量:78660
4fb6ad91-52a6-307a-9e4f-816b4a7ce416
哲理故事与管理之道
浏览量:131830
社区版块
存档分类
最新评论

一个格式化输出二进制数据的工具

阅读更多
    public static String byteToHexString(byte[] arr) {
        StringBuffer sb = new StringBuffer(arr.length * 2);
        sb.append("00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15    text\n");
        sb.append("-------------------------------------------------------\n");
        
        for (int i = 0; i < arr.length; i++) {
            String hex = Integer.toHexString(0xFF & arr[i]).toUpperCase();
            if (hex.length() == 1) {
                hex = "0" + hex;
            }
            sb.append(hex).append(' ');
            if ((i + 1) % 16 == 0) {
                //TODO
                sb.append('\n');
            }
        }
        sb.append('\n');
        return sb.toString();
    }

测试:

import java.math.BigInteger;
import java.util.BitSet;


/**
 * 测试bitset 的异或操作能不能正确的的看出两个bigInteger的bit 位之间的差异
 * @author leo
 *
 */
public class TestBitSetAndBigInteger {

    /**
     * @param args
     */
    public static void main(String[] args) {
        BigInteger i1 = new BigInteger("1020");
        BigInteger i2 = new BigInteger("1021");
        
        BigInteger i3 = new BigInteger("10131036798906733839");
        BigInteger i4 = new BigInteger("10131036798906734863");//i3 + 1024
        
        BitSet s1 = BitSet.valueOf(i1.toByteArray());
        BitSet s2 = BitSet.valueOf(i2.toByteArray());
        
        BitSet s3 = BitSet.valueOf(i3.toByteArray());
        BitSet s4 = BitSet.valueOf(i4.toByteArray());
        
        System.out.println("i1:::::\n" + Utils.byteToHexString(i1.toByteArray()));
        System.out.println("s1:::::\n" + Utils.byteToHexString(s1.toByteArray()));
        
        System.out.println("i2:::::\n" + Utils.byteToHexString(i2.toByteArray()));
        System.out.println("s2:::::\n" + Utils.byteToHexString(s2.toByteArray()));
        
        System.out.println("i3:::::\n" + Utils.byteToHexString(i3.toByteArray()));
        System.out.println("s3:::::\n" + Utils.byteToHexString(s3.toByteArray()));
        
        System.out.println("i4:::::\n" + Utils.byteToHexString(i4.toByteArray()));
        System.out.println("s4:::::\n" + Utils.byteToHexString(s4.toByteArray()));
        
        BitSet s11 = (BitSet) s1.clone();
        s11.xor(s2);
        BitSet s22 = (BitSet) s2.clone();
        s22.xor(s1);
        System.out.println("s1 xor s2 = " + s11.cardinality());
        System.out.println("s2 xor s1 = " + s22.c
i1:::::
00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15    text
-------------------------------------------------------
03 FC 

s1:::::
00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15    text
-------------------------------------------------------
03 FC 

i2:::::
00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15    text
-------------------------------------------------------
03 FD 

s2:::::
00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15    text
-------------------------------------------------------
03 FD 

i3:::::
00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15    text
-------------------------------------------------------
00 8C 98 AC 4A C5 3F 15 0F 

s3:::::
00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15    text
-------------------------------------------------------
00 8C 98 AC 4A C5 3F 15 0F 

i4:::::
00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15    text
-------------------------------------------------------
00 8C 98 AC 4A C5 3F 19 0F 

s4:::::
00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15    text
-------------------------------------------------------
00 8C 98 AC 4A C5 3F 19 0F 

s1 xor s2 = 1
s2 xor s1 = 1
s3 xor s4 = 2
s4 xor s3 = 2

 

3
3
分享到:
评论

相关推荐

    python基础系列教程-Python3.x标准模块库目录.docx

    7.readline:GNU按行读取接口 8.rlpleter:GNU按行读取的实现函数 二进制数据 9.struct:将字节解析为打包的二进制数据 10.codecs:注册表与基类的编解码器 数据类型 11.datetime:基于日期与时间工具 12.calendar:...

    Java核心技术II(第8版)

    1.3 读入和写出二进制数据 1.3.1 随机访问文件 1.4 ZIP文档 1.5 对象流与序列化 1.5.1 理解对象序列化的文件格式 1.5.2 修改缺省的序列化机制 1.5.3 序列化单例和类型安全的枚举 1.5.4 版本管理 1.5.5 为克隆使用...

    HexConverter:复制到剪贴板时可将十六进制代码自动转换为十进制和二进制的实用程序

    该实用程序侦听Mac键盘上的Command-C,并在触发时检查剪贴板中以0x十六进制前缀开头的字符串,并将遇到的所有十六进制代码转换为十进制和二进制。 结果显示在一个简单的对话框中。 该工具将转换屏幕上标识的十六...

    MATLAB模式识别实现指标分类评估预测如环境业绩等-training_data.xls

    对输出数据进行二进制量化 通常情况下,用于测试的输入数据所对应的输出数据不是量化数据,比如说:优、良,或者是一级、二级等等。那么通常我们用二进制来表达,两位数字的二进制可以表示3类(01,10,11),三...

    MATLAB模式识别实现指标分类评估预测如环境业绩等-new_data.xls

    对输出数据进行二进制量化 通常情况下,用于测试的输入数据所对应的输出数据不是量化数据,比如说:优、良,或者是一级、二级等等。那么通常我们用二进制来表达,两位数字的二进制可以表示3类(01,10,11),三...

    Hadoop权威指南 第二版(中文版)

     一个气象数据集  数据的格式  使用Unix工具进行数据分析  使用Hadoop分析数据  map阶段和reduce阶段  横向扩展  合并函数  运行一个分布式的MapReduce作业  Hadoop的Streaming  Ruby版本  Python版本  ...

    用于高光谱数据预处理的软件:该软件提供了一个用户友好的工具(基于两个 GUI)用于预处理反射光谱-matlab开发

    提供单个光谱的二进制文件可以使用软件功能通过 GUI 进行处理,该功能允许选择一个或多个二进制文件以在唯一的 .txt 文件中生成光谱库。 光谱反射率使用“凸包”方法重新校准,以消除凸面形状,这是反射光谱的典型...

    camp2ascii:将 Campbell Scientific TOB1、TOB2 和 TOB3 数据文件转换为 ASCII 格式

    这里介绍的工具是一个开源工具(受),它允许提取这些二进制文件中包含的数据。 输出可以格式化以满足您的需要,您可以非常精确地控制要提取的数据量如何使用它? 这是一个命令行程序。 使用“-h”选项运行它会显示...

    Hadoop权威指南(中文版)2015上传.rar

    一个气象数据集 数据的格式 使用Unix工具进行数据分析 使用Hadoop分析数据 map阶段和reduce阶段 横向扩展 合并函数 运行一个分布式的MapReduce作业 Hadoop的Streaming Ruby版本 Python版本 Hadoop Pipes 编译运行 第...

    JAVA上百实例源码以及开源项目源代码

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    数据结构(C++)有关练习题

    7、 编写一个程序,将10进制数转换为其它(2-9)进制数。可以将要转换的数重复除以基数,然后讲除的余数按反方向排列来实现; 8、 已知A[n]为正数数组,试写出实现下列运算的递归算法; a. 求数组A中的...

    MATLAB模式识别实现指标分类评估预测如环境业绩等-Training_NPR.m

    对输出数据进行二进制量化 通常情况下,用于测试的输入数据所对应的输出数据不是量化数据,比如说:优、良,或者是一级、二级等等。那么通常我们用二进制来表达,两位数字的二进制可以表示3类(01,10,11),三...

    MATLAB模式识别实现指标分类评估预测如环境业绩等-Use_For_Predict.m

    对输出数据进行二进制量化 通常情况下,用于测试的输入数据所对应的输出数据不是量化数据,比如说:优、良,或者是一级、二级等等。那么通常我们用二进制来表达,两位数字的二进制可以表示3类(01,10,11),三...

    XML经典学习资料(赶快下啊)

    扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用。  XML与Access,...

    谭浩强C语言程序设计,C++程序设计,严蔚敏数据结构,高一凡数据结构算法分析与实现.rar

    13.4.4 格式化读写函数fscanf和fprintf 201 13.5 文件的随机读写 202 13.5.1 文件定位 202 13.5.2 文件的随机读写 203 13.6 文件检测函数 204 13.6.1 文件结束检测函数 feof函数 204 13.6.2 读写文件出错检测函数 ...

    JAVA上百实例源码以及开源项目

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    TextPipe Pro 9.7.3 中文免费版 你的文本信息处理工具.zip

    用户可以指定一个字符串被输出为每个的256个可能的字符码。字符串可以包含嵌入控制字符 ·搜索和替换:用区分大小写的选项。它给出了搜索的长度和替换字符串 – 用于文本替换在二进制文件中免费有用 ·添加一个前缀...

    计算机应用基础(2).doc

    什么是补码、反码,如何求一个二进制数的补码,试求下列各二进制数的补码? 0.11001 -0.11001 0.00001 -0.00001 0.11111 -0.11111 12.在计算机中,字符是怎样表示的,汉字又是怎样表示的? 13.计算机系统包括哪些...

    java开源包1

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包11

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

Global site tag (gtag.js) - Google Analytics