二进制打印工具

该工具可以将一个数的以二进制形式打印出来。支持分隔,支持去除前端多余0。可用来调试代码,和学习计算机底层实现。

/**
 * Created by zhuguohui on 2018/12/14.
 */
public class BinaryPrintUtil {
    private static final long[] arr = new long[64];

    static {
        arr[0] = 0x8000000000000000L;
        for (int i = 1; i < arr.length; i++) {
            arr[i] = arr[i - 1] >>> 1;
        }
    }

    /**
     * 打印a的二进制表示
     *
     * @param a               要打印的数字
     * @param removeFrontZero 是否移除前端多余的0
     * @param space           间隔多少位空一格 -1 表示没有间隔,最大值为32
     * @return
     */
    public static String show(long a, boolean removeFrontZero, int space) {
        return show(a, 0, removeFrontZero, space);
    }

    /**
     * 打印a的二进制表示
     *
     * @param a               要打印的数字
     * @param removeFrontZero 是否移除前端多余的0
     * @param space           间隔多少位空一格 -1 表示没有间隔,最大值为32
     * @return
     */
    public static String show(int a, boolean removeFrontZero, int space) {
        return show(a, 32, removeFrontZero, space);
    }

    /**
     * 打印a的二进制表示
     *
     * @param a               要打印的数字
     * @param removeFrontZero 是否移除前端多余的0
     * @param space           间隔多少位空一格 -1 表示没有间隔,最大值为32
     * @return
     */
    public static String show(short a, boolean removeFrontZero, int space) {
        return show(a, 48, removeFrontZero, space);
    }

    /**
     * 打印a的二进制表示
     *
     * @param a               要打印的数字
     * @param removeFrontZero 是否移除前端多余的0
     * @param space           间隔多少位空一格 -1 表示没有间隔,最大值为32
     * @return
     */
    public static String show(byte a, boolean removeFrontZero, int space) {
        return show(a, 56, removeFrontZero, space);
    }

    /**
     * 打印a的二进制表示
     *
     * @param a
     * @param removeFrontZero 是否移除前端多余的0
     * @param space           间隔多少位空一格 -1 表示没有间隔,最大值为32
     * @return
     */
    public static String show(long a, int beginIndex, boolean removeFrontZero, int space) {
        //打印a的二进制数据
        StringBuilder builder = new StringBuilder();
        if (space > 32) {
            space = -1;
        }
        for (int i = beginIndex; i < arr.length; i++) {
            if ((a & arr[i]) == arr[i]) {
                builder.append("1");
            } else {
                builder.append("0");
            }
            if (space != -1 && i != 0 && (i + 1) % space == 0) {
                builder.append(" ");
            }
        }
        String result = builder.toString();
        if (removeFrontZero) {
            char[] s = builder.toString().toCharArray();
            int subStringBeginIndex = 0;
            for (int i = 0; i < s.length; i++) {
                if (s[i] != '1') {
                    continue;
                }
                subStringBeginIndex = i;
                if (space != -1) {
                    //找到了第一个非0数,开始向前搜索第一个空格
                    for (int j = subStringBeginIndex; j >= 0; j--) {
                        if (s[j] == ' ') {
                            subStringBeginIndex = j;
                            break;
                        }
                    }
                }

            }
            result = result.substring(subStringBeginIndex);
        }
        return result;
    }

使用效果
在这里插入图片描述

### 回答1: besnew二进制查看工具是一款功能强大的软件,可以帮助用户查看和分析二进制文件。如果你需要下载besnew二进制查看工具,可以按照以下步骤进行: 1. 打开你的电脑浏览器,进入搜索引擎的网站,如Google、百度等。 2. 在搜索框中输入“besnew二进制查看工具下载”,并点击搜索按钮。 3. 搜索结果会显示多个网站提供该工具的下载服务,你可以选择任意一个。 4. 点击你选定的网站链接,进入该网站的页面。 5. 在该页面中,你可以找到besnew二进制查看工具的下载链接。 6. 点击下载链接,等待下载完成。 7. 下载完成后,找到下载文件所在的文件夹。 8. 双击下载的文件,按照提示完成安装过程。 9. 安装完成后,你可以在电脑的开始菜单、桌面或安装目录中找到besnew二进制查看工具的图标。 10. 点击图标,启动besnew二进制查看工具。 现在,你已经成功下载并安装了besnew二进制查看工具,可以开始使用它来查看和分析二进制文件了。希望这个回答对你有帮助! ### 回答2: besnew二进制查看工具是一款简单实用的软件,它可以帮助用户查看和分析二进制文件。在计算机科学领域中,二进制文件是以二进制形式存储的文件,使用besnew二进制查看工具可以让用户以可视化的方式查看和编辑这些文件。 当我们需要查看一个二进制文件时,使用普通文本编辑器并不能直接读取其中的内容,因为二进制文件包含了大量的机器语言代码和非可打印字符。而besnew二进制查看工具则将二进制文件转换为可视化的形式,以十六进制和ASCII码形式展示文件的内容。 用户可以在besnew二进制查看工具中打开二进制文件,然后通过滚动条或者输入指定的十六进制地址来浏览和分析文件的内容。工具会以表格的形式显示每一个字节的地址、十六进制值和对应的ASCII码表示。同时,用户还可以在表格中选中一段字节,以便于对这些字节进行复制、粘贴、编辑等操作。 besnew二进制查看工具的优点在于其简洁易用,用户不需要具备专业的编程知识也能轻松上手。它还支持二进制文件的搜索和替换功能,方便用户快速定位和修改特定的数据。 为了使用besnew二进制查看工具,用户可以在官方网站上进行下载。该软件提供了免费版本和付费版本,用户可以根据个人需求选择适合自己的版本进行下载安装。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值