找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3|回复: 0
收起左侧

android studio备份学习资料 数据转换BIN等变换

[复制链接]
ID:20012 发表于 2026-6-17 12:44 | 显示全部楼层 |阅读模式
基本数据转换:

package com.example.my_byte_hex_show;
//数据转换BIN等变换

public  class byte_int_long_to_bin_hex {
    //输入一个byte转换为bin并且补齐8位返回
    public static String bytetobin(byte b){//输入一个byte转换为bin并且补齐8位返回
        String b1 = byte_to_bin(b);//传入一个byte,返回一个二进制字符串
        return b1;

    }
    private static String byte_to_bin(byte b){//传入一个byte,返回一个二进制字符串
        //byte b = (byte) 0x80;//大于0x7f都要加强转(byte)
        int temp = b & 0xff;
        String bintostr = String.format("%8s",Integer.toBinaryString(temp).replace(' ','0'));//补全8位
        // String s = bytesToHex_old(bytes, 20);20个全转换
        String s =  byteToHex(b);//只转换一个
       // System.out.println(s +" 转BIN= " + bintostr);

        //小于0X80时,BIN长度不足8位时,要在左边补0
        bintostr = bintostr.trim();
        bintostr = wei_to_8(bintostr);
        return bintostr;

    }

    //.................................
    private static String wei_to_8(String s){//长度不足8位时,补全8位
        //String s1 = "";
        if (s.length() < 8) {
            int cnt = 8 - s.length();
            while (cnt > 0) {
                s = "0" + s;
                cnt--;
            }

        }
       // System.out.println("长度不足8位时,补全8位后= " + s);
        return s;
    }
    //..........将byte转换hex..........
    public static String byteToHex(byte b) {//将byte转换hex
        String strHex = Integer.toHexString(0xFF & b);
       // System.out.println(b + " byte转换bin时 =" + strHex);
        if (strHex.length() == 1) {
            strHex = "0" + strHex;
        }
        return strHex;
    }
    //........输入INT,转换为BIN返回
    //输入一个int转换为bin并且补齐32位返回
    public static String inttobin(int b){//输入一个INT转换为bin并且补齐32位返回
        String b1 = int_to_bin(b);//传入一个byte,返回一个二进制字符串
        return b1;

    }
    private static String int_to_bin(int b){//传入一个byte,返回一个二进制字符串
        //byte b = (byte) 0x80;//大于0x7f都要加强转(byte)
        //int temp = b & 0xff;
        int temp = b ;
       // String bintostr = String.format("%8s",Integer.toBinaryString(temp).replace(' ','0'));//补全8位
        String bintostr = String.format("%32s",Integer.toBinaryString(temp).replace(' ','0'));//补全8位
        // String s = bytesToHex_old(bytes, 20);20个全转换
        String s =  intToHex(b);//只转换一个
      //  System.out.println(s +" 转BIN= " + bintostr);

        //小于0X80时,BIN长度不足8位时,要在左边补0
        bintostr = bintostr.trim();
        bintostr = wei_to_32(bintostr);
        return bintostr;

    }

    //.................................
    private static String wei_to_32(String s){//长度不足32位时,补全32位
        //String s1 = "";
        if (s.length() < 32) {
            int cnt = 32 - s.length();
            while (cnt > 0) {
                s = "0" + s;
                cnt--;
            }

        }
       // System.out.println("长度不足32位时,补全32位后= " + s);
        return s;
    }

    //..........将int转换hex..........
    /*
    String strHex = Integer.toHexString(0xFFFFFFFF & b);//
    0xff = byte
    short e = (short) 0xffff;
    0xffffffff = int,long

     */
    public static String intToHex(int b) {//将byte转换hex

        String strHex = Integer.toHexString(0xFFFFFFFF & b);//
        //System.out.println("10进制数据= "+b + " int转换bin时 =" + strHex);
        if (strHex.length() == 1) {
            strHex = "0" + strHex;
        }
        return strHex;
    }

    //........输入long,转换为BIN返回
    //输入一个int转换为bin并且补齐32位返回
    public static String longtobin(long b){//输入一个INT转换为bin并且补齐32位返回
        String b1 = long_to_bin(b);//传入一个byte,返回一个二进制字符串
        return b1;

    }
    private static String long_to_bin(long b){//传入一个byte,返回一个二进制字符串
        //byte b = (byte) 0x80;//大于0x7f都要加强转(byte)
        //int temp = b & 0xff;
        long temp = b ;
        // String bintostr = String.format("%8s",Integer.toBinaryString(temp).replace(' ','0'));//补全8位
        String bintostr = String.format("%32s",Long.toBinaryString(temp).replace(' ','0'));//补全8位
        // String s = bytesToHex_old(bytes, 20);20个全转换
        String s =  longToHex(b);//只转换一个
        //System.out.println(s +" 转BIN= " + bintostr);

        //小于0X80时,BIN长度不足8位时,要在左边补0
        bintostr = bintostr.trim();
        bintostr = wei_to_320(bintostr);
        return bintostr;

    }

    //.................................
    private static String wei_to_320(String s){//长度不足32位时,补全32位
        //String s1 = "";
        if (s.length() < 32) {
            int cnt = 32 - s.length();
            while (cnt > 0) {
                s = "0" + s;
                cnt--;
            }

        }
       // System.out.println("长度不足32位时,补全32位后= " + s);
        return s;
    }

    //..........将long转换hex..........
    public static String longToHex(long b) {//将byte转换hex
        String strHex = Long.toHexString(0xFFFFFFFF & b);
      //  System.out.println("10进制数据= "+b + " LONG转换bin时 =" + strHex);
        if (strHex.length() == 1) {
            strHex = "0" + strHex;
        }
        return strHex;
    }

}

public void byte_int_long_to_bin_hex_test(){//转换类测试
        byte b = 0x45;
        System.out.println("byte b = 0x45;测试类byte to bin= "+byte_int_long_to_bin_hex.bytetobin(b));
        System.out.println("byte b = 0x45;测试类byte to bin16进显示= "+byte_int_long_to_bin_hex.byteToHex(b));
        int c = 0x12345;
        System.out.println("int c = 0x12345;测试类int to bin= "+byte_int_long_to_bin_hex.inttobin(c));//输入一个INT转换为bin并且补齐32位返回);
        System.out.println("int c = 0x12345;测试类int to bin16进显示= "+byte_int_long_to_bin_hex.intToHex(c));//输入一个INT转换为bin并且补齐32位返回);

        long d = 0x54321;
        System.out.println("long d = 0x54321;测试类long to bin= "+byte_int_long_to_bin_hex.longtobin(d));//输入一个long转换为bin并且补齐32位返回);
        System.out.println("long d = 0x54321;测试类long to bin16进显示= "+byte_int_long_to_bin_hex.longToHex(d));//输入一个long转换为bin并且补齐32位返回);
        System.out.println("--------------------------------");
        d = 0x7FFFFFFE;
        System.out.println("long d = 0x7FFFFFFE;测试类long to bin= "+byte_int_long_to_bin_hex.longtobin(d));//输入一个long转换为bin并且补齐32位返回);
        System.out.println("long d = 0x7FFFFFFE;测试类long to bin16进显示= "+byte_int_long_to_bin_hex.longToHex(d));//输入一个long转换为bin并且补齐32位返回);

        System.out.println("-----byte---------------------------");

        b =  0x25;
        System.out.println("byte b = 0x25;测试类byte to bin= "+byte_int_long_to_bin_hex.bytetobin(b));
        System.out.println("byte b = 0x25;测试类byte to bin16进显示= "+byte_int_long_to_bin_hex.byteToHex(b));
         b = (byte) 0xfe;
        System.out.println("byte b = 0xfe;测试类byte to bin= "+byte_int_long_to_bin_hex.bytetobin(b));
        System.out.println("byte b = 0xfe;测试类byte to bin16进显示= "+byte_int_long_to_bin_hex.byteToHex(b));
    }

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表