`
rplees
  • 浏览: 11515 次
  • 性别: Icon_minigender_1
  • 来自: 江西
最近访客 更多访客>>
社区版块
存档分类
最新评论

java字符串与二进制的相互转化

阅读更多
package mimaxue;


public class StrBinaryTurn {
    //将Unicode字符串转换成bool型数组
    public boolean[] StrToBool(String input){
        boolean[] output=Binstr16ToBool(BinstrToBinstr16(StrToBinstr(input)));
        return output;
    }
    //将bool型数组转换成Unicode字符串
    public String BoolToStr(boolean[] input){
        String output=BinstrToStr(Binstr16ToBinstr(BoolToBinstr16(input)));
        return output;
    }
    //将字符串转换成二进制字符串,以空格相隔
    private String StrToBinstr(String str) {
        char[] strChar=str.toCharArray();
        String result="";
        for(int i=0;i<strChar.length;i++){
            result +=Integer.toBinaryString(strChar[i])+ " ";
        }
        return result;
    }
    //将二进制字符串转换成Unicode字符串
    private String BinstrToStr(String binStr) {
        String[] tempStr=StrToStrArray(binStr);
        char[] tempChar=new char[tempStr.length];
        for(int i=0;i<tempStr.length;i++) {
            tempChar[i]=BinstrToChar(tempStr[i]);
        }
        return String.valueOf(tempChar);
    }
    //将二进制字符串格式化成全16位带空格的Binstr
    private String BinstrToBinstr16(String input){
        StringBuffer output=new StringBuffer();
        String[] tempStr=StrToStrArray(input);
        for(int i=0;i<tempStr.length;i++){
            for(int j=16-tempStr[i].length();j>0;j--)
                output.append('0');
            output.append(tempStr[i]+" ");
        }
        return output.toString();
    }
    //将全16位带空格的Binstr转化成去0前缀的带空格Binstr
    private String Binstr16ToBinstr(String input){
        StringBuffer output=new StringBuffer();
        String[] tempStr=StrToStrArray(input);
        for(int i=0;i<tempStr.length;i++){
            for(int j=0;j<16;j++){
                if(tempStr[i].charAt(j)=='1'){
                    output.append(tempStr[i].substring(j)+" ");
                    break;
                }
                if(j==15&&tempStr[i].charAt(j)=='0')
                    output.append("0"+" ");
            }
        }
        return output.toString();
    }  
    //二进制字串转化为boolean型数组  输入16位有空格的Binstr
    private boolean[] Binstr16ToBool(String input){
        String[] tempStr=StrToStrArray(input);
        boolean[] output=new boolean[tempStr.length*16];
        for(int i=0,j=0;i<input.length();i++,j++)
            if(input.charAt(i)=='1')
                output[j]=true;
            else if(input.charAt(i)=='0')
                output[j]=false;
            else
                j--;
        return output;
    }
    //boolean型数组转化为二进制字串  返回带0前缀16位有空格的Binstr
    private String BoolToBinstr16(boolean[] input){
        StringBuffer output=new StringBuffer();
        for(int i=0;i<input.length;i++){
            if(input[i])
                output.append('1');
            else
                output.append('0');
            if((i+1)%16==0)
                output.append(' ');          
        }
        output.append(' ');
        return output.toString();
    }
    //将二进制字符串转换为char
    private char BinstrToChar(String binStr){
        int[] temp=BinstrToIntArray(binStr);
        int sum=0;  
        for(int i=0; i<temp.length;i++){
            sum +=temp[temp.length-1-i]<<i;
        }  
        return (char)sum;
    }
    //将初始二进制字符串转换成字符串数组,以空格相隔
    private String[] StrToStrArray(String str) {
        return str.split(" ");
    }
    //将二进制字符串转换成int数组
    private int[] BinstrToIntArray(String binStr) {      
        char[] temp=binStr.toCharArray();
        int[] result=new int[temp.length];  
        for(int i=0;i<temp.length;i++) {
            result[i]=temp[i]-48;
        }
        return result;
    }
  

  
}

分享到:
评论

相关推荐

    [JAVA]二进制字符串转十进制带异常抛出

    在Java编程语言中,将一个表示二进制的字符串转换为十进制数值是一项常见的任务。这个过程可能会遇到一些异常情况,例如输入的字符串不是有效的二进制数字,或者超出了整数类型的范围。本篇文章将详细讲解如何进行...

    Base16 java字符串与十六进制互转 js字符串与十六进制互转

    这里我们将深入探讨“Base16”(也称为Hex)编码,以及Java和JavaScript中如何进行字符串与十六进制之间的转换。 Base16是一种简单的二进制到文本的编码方式,它将每个八位字节表示为两个十六进制数字。这种编码...

    android字符串和16进制转换

    在这里,`String.format()`和`BigInteger`用于将字符串转换为16进制,而`Base64.getDecoder().decode()`则用于将16进制字符串解码回原始的字节数组,再转化为字符串。 在实际应用中,你可能还会遇到其他复杂情况,...

    java String 与各种进制字符之间的转换

    在Java编程语言中,String类是处理文本字符串的核心类,而与各种进制字符之间的转换是常见的编程需求。本文将详细探讨Java中如何进行String与二进制、八进制、十进制以及十六进制之间的转换。 首先,我们要了解进制...

    二进制与字符串之间的转换类CBinary

    1. **二进制转字符串**:将二进制数据转换为字符串。这通常涉及到将二进制数据视作一系列字节,然后用某种编码(如ASCII、UTF-8等)解释这些字节,生成对应的字符序列。例如,一个字节的二进制值`01001000`对应ASCII...

    字符串转16进制字节

    除了Python,其他编程语言如Java、C++、JavaScript等也有类似的方法进行字符串与16进制字节的转换。在Java中,可以使用`String.getBytes()`和`new String(byte[], charset)`;在JavaScript中,可以使用`Buffer`对象...

    java权限设置,和java处理字符和二进制的转换

    1. 字符串转换为二进制字符串:我们可以使用Integer.toBinaryString()方法将字符串转换为二进制字符串。 2. 二进制字符串转换为Unicode字符串:我们可以使用toChar()方法将二进制字符串转换为Unicode字符串。 3. ...

    java实现字符转换成十六进制的ASCII码

    在Java编程语言中,将字符转换为十六进制表示的ASCII码是一项常见的任务,尤其是在处理字符串数据时。本文将深入探讨如何实现这个功能,并通过一个具体的示例代码`StringToAscii.java`进行演示。 首先,我们需要...

    Java实现任意进制的转换

    在Java中,我们可以使用`Integer`类的`toHexString`方法,将一个整数的二进制表示转换为十六进制字符串。例如: ```java int binaryNumber = 0b101010; // 二进制数 String hexString = Integer.toHexString(binary...

    字符串转16进制码

    字符串是由字符组成的序列,而16进制(Hexadecimal)是一种数字表示方法,通常用于简化二进制数据的显示和处理。本篇文章将深入探讨如何将字符串转换为16进制码,以及这种转换在实际应用中的作用。 首先,我们需要...

    将图片转成二进制并生成Base64编码字符串,再将二进制转换成各种图片

    本文将深入探讨如何将图片转换为二进制格式,然后生成Base64编码字符串,以及如何将这些字符串重新转换回图片。这个过程在很多场景下都有应用,比如在网络上传输图片数据,或者在数据库中存储图片。 首先,我们需要...

    java中进制转换(二进制,十进制,十六进制)及字节数组与十六进制的转换

    本篇将详细阐述如何在Java中进行二进制、十进制和十六进制之间的转换,以及字节数组与十六进制字符串的相互转换。 一、进制转换 1. **二进制转十进制**:Java中可以使用`Integer.parseInt()`或`Long.parseLong()`...

    java进制转换工具类

    二进制数组转换为二进制字符串 将二进制数组转换为十六进制字符串 将十六进制转换为二进制字节数组 将十六进制转换为二进制字符串

    字符串转十六进制数字

    在IT领域,尤其是在编程中,将字符串转换为十六进制数字是一项常见的操作。这涉及到字符编码、数值系统转换以及函数调用等基础知识。本篇将详细介绍如何在DLL(动态链接库)文件中实现这一功能,并指导如何利用...

    Java实现的进制转换工具类完整示例

    Java实现的进制转换工具类是Java语言中的一种常用工具类,用于实现各种进制之间的转换操作,如二进制、十六进制、字符串、数组等。该工具类主要提供了将字节数组转换为十六进制字符数组或字符串的方法,以及将字符串...

    java二进制,字节数组,字符,十六进制,BCD编码转换

    /* java二进制,字节数组,字符,十六进制,BCD编码转换2007-06-07 00:17/** *//** * 把16进制字符串转换成字节数组 * @param hex * @return */

    16进制字符串转10进制

    在计算机科学中,进制转换是一项基础且至关重要的技能,特别是在处理二进制、八进制、十进制和十六进制数据时。本主题主要关注如何将16进制字符串转换为10进制数值,这对于编程和数据处理至关重要。16进制...

    Java字符串转成二进制码的方法

    Java 字符串转换二进制码方法是 Java 语言中的一种常见操作,通过本文,我们将详细介绍 Java 字符串转换二进制码的方法,并提供相应的代码实现。 一、字符串转换二进制码 在 Java 中,我们可以使用 `...

    16进制Ascll与字符串相互转换

    总之,16进制ASCII与字符串的相互转换是编程中基础但关键的操作,它涉及到字符编码、数据表示以及字符串处理等核心概念。理解并能熟练应用这些转换技巧,对于提升编程能力,特别是在处理二进制数据时,是非常有帮助...

    Java进制转换方法整理

    一个二进制字符串 10进制转8进制 Integer.toOctalString(n) 一个八进制字符串 10进制转16进制 Integer.toHexString(n) 一个十六进制字符串 10进制转 R 进制 Integer.toString(100, 16) 一个R进制字符串 ...

Global site tag (gtag.js) - Google Analytics